6

当我启动“mvn install”命令时,maven 有时会尝试下载它已经下载的依赖项。这是 SNAPSHOT 所期望的,但为什么 maven 对其他 JAR 这样做呢?

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

4

4 回答 4

9

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

于 2008-09-24T11:49:01.083 回答
3

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

于 2008-09-27T03:56:01.653 回答
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

于 2008-09-27T05:13:48.703 回答
0

-o 标志仍然对我不起作用,但这确实:

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

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

于 2011-10-15T19:34:06.427 回答