1

我有一个项目,它具有pom.xml并且依赖于来自外部的许多依赖项(位于互联网的很远......)。

因此,我想将所有依赖的依赖项下载到我的“本地存储库”中。

这是我的尝试(我不需要编译,所以我在这里使用“验证”。所以我不希望最后有“目标”文件夹):

mvn validate -Dmaven.repo.local=C:\my\.m2\repository dependency:copy-dependencies 

最后 - 是的,我有很多依赖项被下载到"C:\my\.m2\repository",但其中一些去了:C:\projects\myProject\java\trunk\target\dependency,就像这些:

junit-4.8.1.jar
log4j-1.2.8.jar
mockito-all-1.8.2.jar

问题是:如何让那些被下载到我的项目"C:\my\.m2\repository"而不是"target"我的项目?

目前,正因为如此,另一个依赖它的项目在构建时失败了,因为他们希望在本地 repo 中找到“junit-4.8.1.jar”。

另一个尝试:

mvn validate -Dmaven.repo.local=C:\my\.m2\repository dependency:resolve

那么这些依赖关系根本无法解决。

无法解析项目 bla-bla-SNAPSHOT 的依赖关系:无法解析以下工件:commons-lang:commons-lang:jar:2.4、log4j:log4j:jar:1.2.8、junit:junit:jar:4.8。 1: 找不到工件 commons-lang:commons-lang:jar:2.4 -> [帮助 1]

4

1 回答 1

1

Maven 这样做是因为您调用了目标依赖项:复制依赖项。它将当前模块的依赖项复制到

 ${project.build.directory}/dependency

http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html

我真的无法想象这些依赖项没有进入您的本地仓库。摆弄脚本可能无法解决您的问题。尝试

 mvn process-resources -U -Dmaven.repo.local=C:\my\.m2\repository

-U 选项强制下载所有依赖项。我建议使用process-resources,尽管据我了解validate也应该没问题。

于 2013-08-15T07:27:03.767 回答