Maven – 如何在声明的存储库中validation依赖项?

我刚刚编辑了一个项目的pom.xml文件的部分,删除了一些我认为不需要的repo。

我想validation声明的依赖项仍然可以在可用的存储库中解析。

但是,所有声明的依赖项都可以在我的本地仓库中使用,因此任何构建的尝试都只使用本地的。

我不想简单地核对我的本地仓库,因为从头开始下载所有依赖项需要花费很多时间。

同样,我对maven尝试下载所有依赖项不感兴趣,我只是希望它确保它们都是可解析的(包括传递依赖)。

我该怎么做呢?

运行mvn dependency:analyze

它会为你检查依赖关系。

参考: http : //maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html

我可以说的第一件事就是不在pom中定义存储库 ,因为它会导致许多问题,特别是对于使用该项目的其他人。 此外,我建议使用存储库管理器来解决问题并提高下载过程中的性能,并简化对这种情况的检查,这意味着只需删除本地存储库并尝试构建。

清空本地仓库似乎是唯一的选择。 此链接可能有助于防止maven解决本地存储库中的依赖项 。

清空您的本地仓库(rm -rf~ / .m2 / repository)并构建。

你无法解决这个耗时的问题。 没有下载它就无法知道某个特定工件是否在特定的外部仓库中。 如果maven刚问“你有X吗?” 你会从破碎的文物中得到假阳性,这些文物在某些回购中是流行的。

好吧,如果你愿意打开你自己的插件,那些让人想到的就是让插件只解决校验和。 在相应的jar / war / zip /已经部署了任何工件之后,这些校验和仅部署到远程存储库。

如果下载所有工件需要几个小时,那么你显然需要一个存储库管理器,如Nexus或Artifactory,就像Karl-Heinz已经建议的那样。 它将保留远程工件的缓存版本,并从中下载将是一个时间问题。

我假设你已经尝试过mvn validate -U? 我不是很好的专家,但这就是我的尝试。 (虽然我经常爆炸我当地的非第三方报告,以确保构建将适用于其他所有人)。