我正在使用maven-feature-plugin
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>features-maven-plugin</artifactId>
<version>2.3.6</version>
<executions>
<execution>
<id>generate</id>
<phase>generate-resources</phase>
<goals>
<goal>generate-features-xml</goal>
</goals>
<configuration>
<bundles>src/main/resources/bundle.properties</bundles>
<kernelVersion>2.3.6</kernelVersion>
<outputFile>target/features.xml</outputFile>
</configuration>
</execution>
</executions>
</plugin>
这很好用,但我生成的功能之一取决于pax-cdi
功能我有没有办法让插件为我添加这个?例如,我在bundle.properties
文件中定义了一些无法自动解析的依赖项,我是否可以在此文件中添加一项功能?
答案 0 :(得分:1)
您可以在pom中将该功能添加为maven依赖项:
<dependency>
<groupId>org.ops4j.pax.cdi</groupId>
<artifactId>pax-cdi-features</artifactId>
<version>0.8.0</version>
<classifier>features</classifier>
<type>xml</type>
</dependency>
这将导致feature.xml包含pax-cdi功能(假设karaf-maven-plugin配置了<aggregateFeatures>true</aggregateFeatures>
)。
您也可以将其留在容器中以拉入pax-cdi功能。只需编辑$ KARAF_HOME / etc / org.apache.karaf.features.cfg,您可以通过将maven url添加到featuresRepositories列表来登记您的pax-cdi-features。
featuresRepositories=....
....,\
mvn:org.ops4j.pax.cdi/pax-cdi-features/0.8.0/xml/features
然后将pax-cdi添加到启动功能列表
featuresBoot=.....,pax-cdi,...
Karaf将在启动时启动pax-cdi捆绑包,以便你的捆绑包可以找到那些可用的cdi包。
答案 1 :(得分:0)
我认为karaf惯例是pax-cdi功能应该由容器本身提供,因此您不需要将这些包添加到您的功能描述符中。 要在karaf中使用pax-cdi功能,请在您的Karaf shell中输入以下内容
功能:addurl mvn:org.ops4j.pax.cdi / pax-cdi-features / 0.8.0 / xml / features