Есть ли в maven-dependency-plugin средство для избирательного исключения транзитивных зависимостей? - PullRequest
0 голосов
/ 28 декабря 2018

Мой проект maven pom.xml объявляет две зависимости.Первая зависимость содержит тип как xml и классификатор как features, а вторая - стандартная jar.Цель состоит в том, чтобы скопировать все прямые зависимости (кроме транзитивных) в папку назначения / зависимости, используя maven-dependency-plugin.

Какие изменения конфигурации можно внести для копирования следующих зависимостей в папку назначения / зависимости?

1) все прямые зависимости (кроме транзитивных), перечисленные в зависимости типа xml

2)другие прямые зависимости (исключая транзитивные), равные pom.xml

Здесь XML-зависимость - это XML-файл Karaf Feature, состоящий из следующих деклараций maven-зависимостей:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="employee-data-feature"> <feature name="employee-data-feature" description="employee-data-feature" version="1.0.0.SNAPSHOT"> <bundle>mvn:com.example.osgi/employee-data/1.0-SNAPSHOT</bundle> </feature> </features>

Iпопытался установить для тега конфигурации значение false, что приводит к копированию всех зависимостей, включая транзитивные.

<groupId>com.example.osgi</groupId>
<artifactId>employee-service</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>bundle</packaging>

<dependencies>
    <dependency>
        <groupId>com.example.osgi</groupId>
        <artifactId>employee-data-feature</artifactId>
        <version>1.0-SNAPSHOT</version>
        <classifier>features</classifier>
        <type>xml</type>
    </dependency>
    <dependency>
        <groupId>com.example.osgi</groupId>
        <artifactId>salary-data</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.1</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <includeScope>runtime</includeScope>
                        <prependGroupId>true</prependGroupId>
                        <excludeTransitive>false</excludeTransitive>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

...