在pom.xml(jar包装)中,我想利用maven依赖插件来下载两种依赖项。一种我希望下载传递和一个没有。到目前为止,我的插件部分包含以下元素:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>Copy dependencies transitive</id>
<phase>initialize</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeTransitive>false</excludeTransitive>
<outputDirectory>lib</outputDirectory>
<includeArtifactIds>artifact_1</includeArtifactIds>
</configuration>
</execution>
<execution>
<id>Copy dependencies not transitive</id>
<phase>initialize</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>samples</outputDirectory>
<excludeTransitive>true</excludeTransitive>
<includeArtifactIds>artifact_2,artifact_3</includeArtifactIds>
</configuration>
</execution>
</executions>
</plugin>
完成后
mvn initialize
artifact_1位于lib和artifact_2中,3位于样本中。但是无法找到artifacts_1的传递依赖项。这是一个正确的方法吗?我某种程度上期望这个解决方案已经可以工作了,但是看起来并没有......我们欢迎更正......
答案 0 :(得分:2)
刚刚发现最新情况...... includeArtifactIds也会影响传递依赖项。因此,如果artifact_4和artifact_5是artifact_1的传递依赖项,则它们不会被复制,因为我没有包含它们。我认为这有点出乎意料,但是......那是如何实现的(但没有记录)。现在我刚刚从includeArtifacts更改为excludeArtifacts并且它可以工作。