English 中文(简体)
为什么maven 2会尝试下载我已经拥有的依赖项?
原标题:
  • 时间:2008-09-24 11:47:15
  •  标签:

当我启动“mvn-install”命令时,maven有时会尝试下载它已经下载的依赖项。这对SNAPSHOT来说是意料之中的事,但为什么maven会对其他JAR这样做呢?

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

最佳回答

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

问题回答

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

当我们讨论这个问题时,我在Maven 2.0.x中遇到了一个主要错误。在离线模式下,Maven仍然会尝试下载最新的快照,当它找不到您的快照回购时,它会导致构建失败。想象一下,当这件事发生在一个客户的网站上时,你只需要做一个小的改变(但我跑题了),随之而来的是多么的滑稽。

Here s the bug: http://jira.codehaus.org/browse/MNG-2433 here s a workaround: http://mail-archives.apache.org/mod_mbox/maven-users/200601.mbox/%3C117228810601130559l7e79a5e2k@mail.gmail.com%3E

-o标志对我来说仍然不起作用,但它确实起了作用:

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

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





相关问题
热门标签