我有一个项目,它有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"
?
目前,正因为如此,依赖于此的另一个项目在构建时失败,因为他们期望在本地回购中找到“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]
答案 0 :(得分:1)
Maven这样做是因为你调用了目标依赖:copy-dependencies。它会将当前模块的依赖项复制到
${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
也应该没问题。