我的最终目标是在某个目录中创建一个Maven存储库,其中包含仅一组工件及其所有依赖项。
为此,我使用以下命令:
mvn.bat dependency:copy-dependencies -f dependencies.pom
-DoutputDirectory=localRepoDir -Dmdep.useRepositoryLayout=true
-Dmdep.copyPom=true -Dmdep.addParentPoms=true
dependencies.pom 正在:
<project>
<modelVersion>4.0.0</modelVersion>
<description>Dependencies</description>
<groupId>com.dummy</groupId>
<artifactId>dummy</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>com.dependency1</groupId>
<artifactId>dep1</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.dependency2</groupId>
<artifactId>dep2</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
执行此操作时,我注意到依赖项poms中声明的父项不会从.m2本地maven存储库复制到目标目录。
也许我错过了一些东西并且有更好的方法来做到这一点,因为使用pom文件来声明我想要复制的工件(连同它们的依赖项)是一种黑客攻击。
答案 0 :(得分:1)
原来maven
使用版本2.8
作为dependency plugin的默认值。当明确指出它使用最新版本(2.10
)时,它工作得很好。
addParentPoms
已在2.8
上为copy-dependencies引入了2.8
参数,因此我想它必须是mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:copy-dependencies
版本中的错误。
{{1}}