如何防止maven解决本地存储库中的依赖关系

Nil*_*idt 11 maven-2

有没有办法告诉maven(当做mvn包,mvn网站或......)不解决本地存储库的依赖关系?

这个问题的背景:有时我遇到问题,当先前缓存的依赖项(例如SomeProject-0.7-ALPHA)在远程存储库中不再可用时.在我的本地构建中,一切仍然正常,因为之前已经缓存了依赖项.一旦我与其他人分享我的pom,他们可能会遇到麻烦,因为他们没有该依赖项的缓存版本,并且无法再从远程存储库解析依赖关系.

任何帮助将不胜感激.提前致谢!

Pas*_*ent 17

有没有办法告诉maven(当做mvn包,mvn网站或......)不解决本地存储库的依赖关系?

不,这就是整个依赖项解析的工作原理(通过本地存储库).

有时,当先前缓存的依赖项(例如SomeProject-0.7-ALPHA)在远程存储库中不再可用时,我会遇到问题.

很抱歉,说明显而易见但从远程存储库中删除依赖项是一种可怕的做法,并导致......以及你所面临的那种麻烦.如果可能的话,避免这样做.

一旦我与其他人分享我的pom,他们可能会遇到麻烦,因为他们没有该依赖项的缓存版本,并且无法再从远程存储库解析依赖关系.

检查事物是否适用于其他人的一种方法是清除您将要从本地存储库共享的项目的依赖关系并重新解决它们.当然,手动执行此操作会非常痛苦,但好消息是Maven Dependency Plugin有一个purge-local-repository目标.

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:purge-local-repository  \
    -DreResolve=true \
    -DactTransitively=true \ 
    -Dverbose=true
Run Code Online (Sandbox Code Playgroud)

如果失败了,那么你知道某些东西丢失了,无法解决,这基本上就是你想知道的.但是你也丢失了它,所以如果这对你很重要,请备份你的存储库.