在maven-dependency-plugin中是否有设施选择性地排除传递性依赖关系?

时间:2018-12-28 05:21:46

标签: maven-3 maven-plugin karaf maven-dependency-plugin apache-karaf-feature

我的maven项目的pom.xml声明了两个依赖关系。第一个从属类型为xml,分类器为features,第二个为标准jar。目标是使用maven-dependency-plugin复制目标/依赖文件夹中的所有直接依赖(不包括传递)。

可以进行哪些配置更改以将以下依赖项复制到target / dependency文件夹?

1)xml类型相关性内列出的所有直接相关性(不包括传递性)

2)pom.xml的其他直接依赖项(不包括传递性)

这里,XML依赖关系是Karaf Feature XML文件,其中包含如下所示的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>

我曾尝试将配置标签设置为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>

0 个答案:

没有答案