将依赖项下载到本地存储库但不“目标”一个

时间:2013-08-09 18:48:35

标签: java maven maven-3

我有一个项目,它有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]

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也应该没问题。