系统环境

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相关推荐

  1. apache karaf_未来是Apache Karaf上的微服务架构

    apache karaf 这是Jamie Goodyear的客座博客文章( 博客 , @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析 ...

  2. 未来是Apache Karaf上的微服务架构

    这是Jamie Goodyear的客座博客文章( 博客 , @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析师: 他为全球大型组织设计 ...

  3. karaf_未来是Apache Karaf上的微服务架构

    karaf 这是Jamie Goodyear的客座博客文章(博客, @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析师: 他为全球大型 ...

  4. Apache Karaf遇到Apache HBase

    介绍 Apache HBase是模仿Google Bigtable的开源,分布式,版本化,面向列的商店. 如果您是普通读者,那么您可能已经知道Apache Karaf是什么,但是对于那些不是的读者:A ...

  5. apache karaf quick start

    http://karaf.apache.org/manual/latest/quick-start.html 关注微信公众号: 回复语言名称,比如java,python,go,C, C++.有海量资源 ...

  6. Apache Karaf离线打包

    layout title tags date categories post Apache Karaf构建动态模块化应用(6)--Karaf离线打包发布 osgi karaf maven 2015-0 ...

  7. 漏洞预警|Apache Karaf 存在远程代码执行漏洞

    棱镜七彩安全预警 近日网上有关于开源项目 Apache Karaf 存在远程代码执行漏洞,棱镜七彩威胁情报团队第一时间探测到,经分析研判,向全社会发起开源漏洞预警公告,提醒相关安全团队及时响应. 项目 ...

  8. Apache Karaf 存在远程代码执行漏洞

    漏洞描述 Apache Karaf 是一个用于部署业务代码或应用程​​序的 modulith 运行时环境. Apache Karaf 的受影响版本中由于 jaas.modules.src.main.j ...

  9. Sharepoint2007自定义Feature(2)--使用Sharepoint自定义Featur

    使用Sharepoint自定义Feature直接调用dll,主要是在Feature.xml文件中对我们自己编译出来的dll进行引用. Feature.xml <?xml version=&quo ...

最新文章

  1. archlinux常用的包管理器
  2. jquery文件的引入
  3. vue项目职责_进大厂兼职的机会来了!腾讯微校项目招人了!
  4. Linux whoami命令、Linux su命令、Linux w命令
  5. HTML+CSS+JS 表白代码
  6. android的log.v,Android Log.v(),Log.d(),Log.i(),Log.w(),Log.e() - 何时使用每一个?
  7. 项目人力资源管理重点梳理
  8. codevs 4189 字典
  9. 轨道交通重要组成部分网络时钟系统(子母钟系统)
  10. 校外用Cterm登陆郁金香的方法
  11. 一起学习荷花定律/金蝉定律和竹子定律
  12. luoguP4578_ [FJOI2018]所罗门王的宝藏
  13. kuka机器人焊接飞溅大_关于KUKA 焊接机器人
  14. win10 6种截图方法 简介
  15. PS制作压印效果的logo等
  16. 剑指Offer——求1+2+3+...+n
  17. 【Python】Windows下安装scipy库步骤
  18. 计算机故障维修四种思路,维修“望闻问切” 电脑故障的排除方法
  19. dedecms采集基础篇
  20. 使用域名注册服务 Domains配置域名【华为云至简致远】

热门文章

  1. XMind思维导图相关教程
  2. 华微电子否认与奇虎360有“绯闻”
  3. 强制卸载lync server 的CMS
  4. 初中学业水平计算机考不及格,初中会考不及格怎么办 有补考机会吗
  5. 一个公司ABCD轮融资是什么意思?
  6. 怎么找网页源文件位置_怎么找网站对应的源码位置
  7. 微信与此ipad不兼容电脑也显示设备版本过低9.0_全面升级 自成一派 iPadOS 14更新让你的iPad更好用...
  8. Java 单边快排 与 双边快排
  9. csdn中编辑常见的latex公式样板
  10. android 客户端的授权,如何ROOT安卓设备并授权向日葵客户端(电脑端)