ServiceMix documentation关于创建自定义分发,仅说明了创建自定义karaf分发的步骤。我知道Karaf是ServiceMix的骨干,而ServiceMix是Karaf的定制发行版。
有没有人真正在servicemix上构建自定义esb而不是在karaf之上?如果是这样你是怎么做到的?
您是如何使用servicemix的src上演项目的?
答案 0 :(得分:2)
以下是我希望在尝试解决这个问题时的一些步骤......
使用以下布局创建项目:
将位于 apache-service-mix-xxx-src / assembly 中的 pom.xml 中的内容复制到 pom.xml < /强>
<parent>
<groupId>org.apache.servicemix</groupId>
<artifactId>parent</artifactId>
<version>5.4.0</version>
</parent>
<groupId>com.mycompany.esb</groupId>
<artifactId>mycustom-esb</artifactId>
<packaging>pom</packaging>
<name>Custom :: ESB</name>
例如,如果要添加特定功能,可以对pom.xml进行以下编辑:
- 将feature.xml添加到add-features-to-repo配置描述符
- 将myfeature添加到add-features-to-repo功能列表
- 要默认启动该功能,请将功能添加到位于此处的 featuresBoot 属性: MyESB \ src \ main \ filtered-resources \ etc \ org.apache.karaf.features .CFG 强>
运行maven安装目标!这将在 MyESB / target 文件夹中构建一个zip文件。现在你可以取消它并运行 servicemix.bat
启动ESB后,通过在Karaf控制台中输入以下命令来验证您的功能是否已安装:
功能:列表| grep myfeature
答案 1 :(得分:0)
好吧,就像servicemix本身一样。这就是它在Karaf文档中所描述的方式。 例如,您可能希望查看here
简而言之,在自定义程序集POM中定义它,请查看以下代码段:
<plugins>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>${karaf.version}</version>
<executions>
<execution>
<id>add-features-to-repo</id>
<phase>compile</phase>
<goals>
<goal>features-add-to-repository</goal>
</goals>
<configuration>
<descriptors>
<descriptor>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</descriptor>
<descriptor>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</descriptor>
<descriptor>mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features</descriptor>
<descriptor>mvn:org.apache.activemq/activemq-karaf/${activemq.version}/xml/features</descriptor>
<descriptor>mvn:org.apache.camel.karaf/apache-camel/${camel.version}/xml/features</descriptor>
<descriptor>mvn:org.apache.cxf.karaf/apache-cxf/${cxf.version}/xml/features</descriptor>
<descriptor>file:${basedir}/target/classes/internal.xml</descriptor>
<descriptor>file:${basedir}/target/classes/features.xml</descriptor>
<descriptor>file:${basedir}/target/classes/examples.xml</descriptor>
</descriptors>
<features>
<feature>cxf</feature>
<feature>obr</feature>
<feature>config</feature>
<feature>standard</feature>
<feature>package</feature>
<feature>kar</feature>
<feature>ssh</feature>
<feature>management</feature>
<feature>eventadmin</feature>
<feature>activemq-broker-noweb</feature>
<feature>activemq-service</feature>
<feature>camel</feature>
<feature>camel-cxf</feature>
<feature>activemq-camel</feature>
<feature>camel-blueprint</feature>
<feature>war</feature>
<feature>jaxrs-api</feature>
</features>
<includeMvnBasedDescriptors>true</includeMvnBasedDescriptors>
<repository>target/features-repo</repository>
</configuration>
<inherited>false</inherited>
</execution>
</executions>
</plugin>
如果您需要自己的自定义捆绑/功能,请确保您
a)拥有自己的捆绑包的特征描述符
b)定义特征描述符
c)告诉插件使用相应的功能