为什么maven 2会尝试下载我已经拥有的依赖项?

时间:2008-09-24 11:47:16

标签: java maven-2

当我启动“mvn install”命令时,maven有时会尝试下载已经下载的依赖项。那是SNAPSHOT的预期,但为什么maven会为其他JAR做那个?

我知道我可以通过“-o”标志来避免这种行为,但我只是想知道原因是什么。

4 个答案:

答案 0 :(得分:9)

我会查找没有指定版本号的依赖项。 Maven将定期检查以确保它具有这些工件的最新版本。

答案 1 :(得分:3)

这可能不是你所看到的,但在过去我不得不手工将工件安装到我的本地存储库中,如果你忘记包含-Dgenerate.pom = true选项,那么就不会有pom。该工件的回购和Maven将转到中央(以及您配置的任何其他远程仓库)尝试在每次构建时下载该pom。

答案 2 :(得分:2)

虽然我们讨论的是这个问题,但我遇到了Maven 2.0.x中的一个主要错误。在脱机模式下,maven仍会尝试下载最新的快照,当它无法找到您的快照存储库时,它将无法进行构建。想象一下,当客户在现场发生这种情况时会发生的欢闹,你只需做一个小改动(但我离题了)。

这是错误: http://jira.codehaus.org/browse/MNG-2433 这是一个解决方法: http://mail-archives.apache.org/mod_mbox/maven-users/200601.mbox/%3C117228810601130559l7e79a5e2k@mail.gmail.com%3E

答案 3 :(得分:0)

-o标志仍然不适合我,但是这样做了:

find ~/.m2/repository -name '_maven*' | xargs rm
find ~/.m2/repository -name '*lastUpdated' | xargs rm

将删除本地仓库中的所有.lastUpdated和_maven.repositories文件。我遇到了这个问题,因为我们有一个无法访问的企业Nexus仓库,我需要做一些工作。使用Eclipse的Maven集成可能也有助于此。

相关问题