Maven存储库继承和覆盖

时间:2011-06-14 20:41:26

标签: maven repository pom.xml

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

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

此外,我已在本地存储库中拥有所需的依赖项。我还想到Maven会使用它。

有没有办法覆盖继承的存储库列表,或者在回购问题的情况下告诉Maven继续存在?

1 个答案:

答案 0 :(得分:0)

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

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

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

我通常设置一个本地托管的存储库管理器(最好是nexus),然后定义mirrorOf(*)= local-repo-manager / url。 Nexus允许将多个repo与预定义的搜索顺序分组。 Nexus repo可以在本地托管或缓存/代理公共回购 我通常在小组的前面有一个本地托管的第三方回购,我可以在那里存储未在公共回购中发布的文物。