我有几年前建立的Maven项目,现在我需要进行一些更新。我的项目的一个依赖项在其POM中列出了一个不再存在的Maven存储库。我现在遇到了构建失败。
我原本以为我的POM或Settings.xml中的存储库列表将胜过依赖项POM中列出的任何存储库;或者Maven在未能连接到灭绝存储库后会尝试我的存储库。相反,它只会因构建失败而爆炸。
此外,我已在本地存储库中拥有所需的依赖项。我还想到Maven会使用它。
有没有办法覆盖继承的存储库列表,或者在回购问题的情况下告诉Maven继续存在?
答案 0 :(得分:0)
如果您所依赖的工件是快照版本,那么maven将在每次构建时检查新快照,这就是为什么将依赖关系锁定到已发布版本的好习惯。
您可以通过在settings.xml中定义<mirror>
来“覆盖”存储库声明。
请参阅http://maven.apache.org/settings.html#Mirrors
我通常设置一个本地托管的存储库管理器(最好是nexus),然后定义mirrorOf(*)= local-repo-manager / url。 Nexus允许将多个repo与预定义的搜索顺序分组。 Nexus repo可以在本地托管或缓存/代理公共回购 我通常在小组的前面有一个本地托管的第三方回购,我可以在那里存储未在公共回购中发布的文物。