Apache Karaf自定义feature
系统环境
JDK :1.8.0_66 x64
Karaf:apache-karaf-4.0.2
maven:Apache Maven 3.3.3
karaf中的feature通常是几个bundle的集合,安装这个feature的时候,相应的bundle也都会被安装上去,用来管理bundle很方便
下面来介绍如何自己开发一个feature
这里来制作一个名字为:apache-commons-utils的feature,里面包含如下bundle
<bundle>mvn:commons-io/commons-io/2.4</bundle>
<bundle>mvn:commons-lang/commons-lang/2.6</bundle>
<bundle>mvn:commons-discovery/commons-discovery/0.5</bundle>
<bundle>mvn:commons-math/commons-math/1.2</bundle>
<bundle>mvn:commons-net/commons-net/3.3</bundle>
再加上2个配置文件 http.cfg、jdbc.cfg (配置文件只是为了演示如何在安装feature的时候,也同时把配置文件安装上)
新建一个maven项目,groupId:com.lala,artifactId:demo-features,version:1.0.0
1:resources目录下,新建http.cfg、jdbc.cfg两个配置文件,内容随便
2:resources目录下,新建features.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<features name="karaf-cellar-4.0.0" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0"><feature name="apache-commons-utils" description="apache commons utils" version="1.0.0"><!-- 这个配置文件将会安装到etc/目录下 --><configfile finalname="/etc/demo-features.jdbc.cfg">mvn:com.lala/demo-features/1.0.0/cfg/jdbc</configfile><!-- 这个配置文件将会安装到deploy/目录下 --><configfile finalname="/deploy/demo-features.http.cfg" override="true">mvn:com.lala/demo-features/1.0.0/cfg/http</configfile><bundle>mvn:commons-io/commons-io/2.4</bundle><bundle>mvn:commons-lang/commons-lang/2.6</bundle><bundle>mvn:commons-discovery/commons-discovery/0.5</bundle><bundle>mvn:commons-math/commons-math/1.2</bundle><bundle>mvn:commons-net/commons-net/3.3</bundle></feature></features>
3:在pom.xml加上如下插件配置
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><useDefaultDelimiters>false</useDefaultDelimiters><delimiters><delimiter>${*}</delimiter></delimiters></configuration><executions><execution><id>filter</id><phase>generate-resources</phase><goals><goal>resources</goal></goals></execution></executions>
</plugin>
<plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>1.9.1</version><executions><execution><id>attach-artifact</id><phase>package</phase><goals><goal>attach-artifact</goal></goals><configuration><artifacts><artifact><file>target/classes/features.xml</file><type>xml</type><classifier>features</classifier></artifact><artifact><file>target/classes/jdbc.cfg</file><type>cfg</type><classifier>jdbc</classifier></artifact><artifact><file>target/classes/http.cfg</file><type>cfg</type><classifier>http</classifier></artifact></artifacts></configuration></execution></executions>
</plugin>
注意:这里的artifact、file、type、classifier的配置方法为:
type为file的扩展名,classifier为file的文件名
配置好之后,执行mvn clean install ,mvn clean deploy
4:修改${karaf.home}/etc/org.apache.karaf.features.cfg文件
在featuresRepositories配置项后面加上:mvn:com.lala/demo-features/1.0.0/xml/features
5:修改${karaf.home}/etc/org.ops4j.pax.url.mvn.cfg文件,
在org.ops4j.pax.url.mvn.repositories配置项后面加上:http://192.168.1.100:8080/nexus/content/groups/public (maven私服的地址)
org.ops4j.pax.url.mvn.settings
org.ops4j.pax.url.mvn.localRepository
这2个配置项,如果你maven本地的仓库地址变了,就需要修改,否则,就不需要修改
5:修改好了之后,重启karaf,执行安装,即可看到效果
karaf@root()> feature:install apache-commons-utils
karaf@root()> list
START LEVEL 100 , List Threshold: 50
ID | State | Lvl | Version | Name
--------------------------------------------------------
52 | Active | 80 | 0.5 | Commons Discovery
53 | Active | 80 | 2.4.0 | Commons IO
54 | Active | 80 | 2.6 | Commons Lang
55 | Active | 80 | 1.2 | Apache Commons Math Bundle
56 | Active | 80 | 3.3.0 | Commons Net
karaf@root()>
Apache Karaf自定义feature相关推荐
- apache karaf_未来是Apache Karaf上的微服务架构
apache karaf 这是Jamie Goodyear的客座博客文章( 博客 , @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析 ...
- 未来是Apache Karaf上的微服务架构
这是Jamie Goodyear的客座博客文章( 博客 , @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析师: 他为全球大型组织设计 ...
- karaf_未来是Apache Karaf上的微服务架构
karaf 这是Jamie Goodyear的客座博客文章(博客, @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析师: 他为全球大型 ...
- Apache Karaf遇到Apache HBase
介绍 Apache HBase是模仿Google Bigtable的开源,分布式,版本化,面向列的商店. 如果您是普通读者,那么您可能已经知道Apache Karaf是什么,但是对于那些不是的读者:A ...
- apache karaf quick start
http://karaf.apache.org/manual/latest/quick-start.html 关注微信公众号: 回复语言名称,比如java,python,go,C, C++.有海量资源 ...
- Apache Karaf离线打包
layout title tags date categories post Apache Karaf构建动态模块化应用(6)--Karaf离线打包发布 osgi karaf maven 2015-0 ...
- 漏洞预警|Apache Karaf 存在远程代码执行漏洞
棱镜七彩安全预警 近日网上有关于开源项目 Apache Karaf 存在远程代码执行漏洞,棱镜七彩威胁情报团队第一时间探测到,经分析研判,向全社会发起开源漏洞预警公告,提醒相关安全团队及时响应. 项目 ...
- Apache Karaf 存在远程代码执行漏洞
漏洞描述 Apache Karaf 是一个用于部署业务代码或应用程序的 modulith 运行时环境. Apache Karaf 的受影响版本中由于 jaas.modules.src.main.j ...
- Sharepoint2007自定义Feature(2)--使用Sharepoint自定义Featur
使用Sharepoint自定义Feature直接调用dll,主要是在Feature.xml文件中对我们自己编译出来的dll进行引用. Feature.xml <?xml version=&quo ...
最新文章
- archlinux常用的包管理器
- jquery文件的引入
- vue项目职责_进大厂兼职的机会来了!腾讯微校项目招人了!
- Linux whoami命令、Linux su命令、Linux w命令
- HTML+CSS+JS 表白代码
- android的log.v,Android Log.v(),Log.d(),Log.i(),Log.w(),Log.e() - 何时使用每一个?
- 项目人力资源管理重点梳理
- codevs 4189 字典
- 轨道交通重要组成部分网络时钟系统(子母钟系统)
- 校外用Cterm登陆郁金香的方法
- 一起学习荷花定律/金蝉定律和竹子定律
- luoguP4578_ [FJOI2018]所罗门王的宝藏
- kuka机器人焊接飞溅大_关于KUKA 焊接机器人
- win10 6种截图方法 简介
- PS制作压印效果的logo等
- 剑指Offer——求1+2+3+...+n
- 【Python】Windows下安装scipy库步骤
- 计算机故障维修四种思路,维修“望闻问切” 电脑故障的排除方法
- dedecms采集基础篇
- 使用域名注册服务 Domains配置域名【华为云至简致远】
热门文章
- XMind思维导图相关教程
- 华微电子否认与奇虎360有“绯闻”
- 强制卸载lync server 的CMS
- 初中学业水平计算机考不及格,初中会考不及格怎么办 有补考机会吗
- 一个公司ABCD轮融资是什么意思?
- 怎么找网页源文件位置_怎么找网站对应的源码位置
- 微信与此ipad不兼容电脑也显示设备版本过低9.0_全面升级 自成一派 iPadOS 14更新让你的iPad更好用...
- Java 单边快排 与 双边快排
- csdn中编辑常见的latex公式样板
- android 客户端的授权,如何ROOT安卓设备并授权向日葵客户端(电脑端)