您可以通过让Maven镜像所有存储库请求来强制Maven使用单个存储库。存储库必须包含所有所需的工件,或者能够将请求代理到其他存储库。当使用内部公司存储库和Maven Repository Manager代理外部请求时,此设置最有用。
要实现此目的,请将mirrorOf设置为*。
This StackOverflow question还建议设置mirrorOf
足以阻止外部存储库,那么为什么Sonatype documentation建议使用无法访问的网址重载central
?
答案 0 :(得分:4)
虚假URL真的无关紧要 - 您可以根据需要将其设置为原始URL,或者您的存储库管理器的URL - 只要mirrorOf
适用,就不会使用它。
这些示例重新定义central
的原因是将工件请求的策略设置为默认存储库。默认情况下,Maven不会将快照请求启用到中央,并使用默认的更新和校验和策略。重新声明central
允许覆盖这些 - 在这种情况下,启用快照工件和插件,然后镜像将所有这些重定向到存储库管理器。这样就无需在POM中声明存储库(只要所有用户的设置都正确)。
答案 1 :(得分:2)
我写了这个,所以我可以告诉你我在想什么; - )
需要更新中央存储库定义以便为至少一个存储库启用快照检索,否则Maven甚至不会向存储库管理器(由mirrorOf指向)请求任何快照。
虽然不是必需的,但我喜欢将url的定义更改为无效的,所以如果系统中的其他位置存在配置错误,则会立即显示正在发生的事情。否则,Maven仍然可以联系中心并掩盖问题。它本质上是一种快速失败的设置。
There's more information on this topic in an old blog I wrote
答案 2 :(得分:0)
maven
需要项目dependencies
本地才能运行。它不关心它是如何可用的 - 无论是手动安装(使用mvn install:install-file
),通过mirror
还是来自central
存储库。如果无法找到依赖项,失败将会运行。
您所指的sonatype
文档正在使用nexus
到mirror/proxy
repositories
。 url 指定 应该是有效的nexus
网址,并且无法无法访问。
在SO问题中也提出了同样的建议。