1

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>

これはかなりうまく機能しますが、生成された機能の 1 つが機能に依存してpax-cdiいます。これをプラグインに追加してもらう方法はありますか? たとえば、bundle.properties自動的に解決できない依存関係がファイルに定義されている場合、このファイルにも機能を追加できますか?

4

2 に答える 2

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>

これにより、pax-cdi 機能を含む feature.xml が生成されます (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 パッケージを見つけることができます。

于 2014-11-09T10:30:12.490 に答える
0

karaf の規則では、pax-cdi 機能はコンテナー自体によって提供される必要があるため、これらのバンドルを機能記述子に追加する必要はないと思います。karaf で pax-cdi 機能を使用するには、Karaf シェルで次のように入力します。

features:addurl mvn:org.ops4j.pax.cdi/pax-cdi-features/0.8.0/xml/features

于 2014-10-06T10:32:48.430 に答える