Создать xml с зависимостями объектов с помощью плагина maven

Я использую 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 файл, который не может быть разрешен автоматически, могу ли я добавить функцию в этот файл?

2 ответа

Вы можете добавить функцию как зависимость maven в вашем pom:

<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, где вы можете подключить ваши pax-cdi-features, добавив URL-адрес maven в список featuresRepositories.

featuresRepositories=....
                     ....,\
                     mvn:org.ops4j.pax.cdi/pax-cdi-features/0.8.0/xml/features

Затем добавьте pax-cdi в список функций загрузки

featuresBoot=.....,pax-cdi,...

Karaf запустит пакеты pax-cdi при загрузке, чтобы ваши пакеты могли найти доступные пакеты cdi.

Я думаю, что условием karaf является то, что функция pax-cdi должна предоставляться самим контейнером, поэтому вам не нужно добавлять эти пакеты в ваш дескриптор функции. Чтобы использовать функцию pax-cdi в karaf, введите в свою оболочку Karaf следующее

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

Другие вопросы по тегам