Maven 存储库继承和覆盖

Pau*_*aul 5 repository pom.xml maven

我有一个几年前构建的 Maven 项目,现在我需要进行一些更新。我的项目的依赖项之一在其 POM 中列出了一个不再存在的 Maven 存储库。我现在遇到构建失败。

我原以为 POM 或 Settings.xml 中的存储库列表会胜过依赖项 POM 中列出的任何存储库;或者 Maven 会在无法连接到已灭绝的存储库后尝试我的存储库。相反,它只是因构建失败而爆炸。

此外,我的本地存储库中已经有了所需的依赖项。我还以为 Maven 会使用它。

有没有办法覆盖继承的存储库列表,或者在出现存储库问题时告诉 Maven 继续执行?

cro*_*wne 0

如果您依赖的工件是快照版本,那么 maven 将在每次构建时检查新快照,这就是为什么将依赖项锁定到已发布版本是一个好习惯。

<mirror>您可以通过在 settings.xml 中定义 a 来“覆盖”存储库声明。

请参阅http://maven.apache.org/settings.html#Mirrors

我通常设置一个本地托管的存储库管理器(最好是nexus),然后定义mirrorOf(*) = local-repo-manager/url。
Nexus 允许使用预定义的搜索顺序对多个存储库进行分组。Nexus 存储库可以本地托管或缓存/代理到公共存储库。
我通常在组的前面有一个本地托管的第 3 方存储库,我可以在其中存储未在公共存储库上发布的工件。