2012-08-15 70 views
2

在pom.xml(jar包装)我想利用maven依赖插件来下载两种依赖关系。一种我想下载的传递和一个没有。做复制依赖关系传递和不可传递

mvn initialize 

artifact_1位于lib和artifact_2和3处位于样品后

<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> 

:到现在为止,我的插件部分包含follwing元素。但是无法找到artifacts_1的传递依赖关系。这是一条正确的路吗?我不知何故希望这种解决方案已经工作,但因为它似乎并不...修正将受到欢迎...

回答

2

刚刚发现最新情况...
includeArtifactIds也影响传递依赖性。所以如果artifact_4和artifact_5是artifact_1的传递依赖关系,它们就不会被复制,因为我没有包含它们。我认为这有点出乎意料,但是......那是它是如何实现的(但没有记录)。现在我只是从includeArtifacts更改为excludeArtifacts,它可以工作。

+1

是的,似乎包含/排除适用于指定和派生(可传递)的整个解析列表,这是一个痛苦... – Chris2048 2014-01-03 18:34:29