如何管理git中maven存储库的弃用



我的公司有许多Java项目使用maven作为其主要依赖关系管理工具。我们编写了许多自己的依赖项(与公司需求相关的通用功能库),然后需要将其托管在maven存储库中,以便我们的应用程序可以将其作为依赖项下载。然而,我们自己的依赖并没有暴露在世界面前;我们希望成为唯一能够访问这些工件的人,因此我们将工件托管在私有repo中。

例如,我们的POM通常具有以下repository块:

<repository>
<id>artifactory</id>
<!-- Note: not a real maven repo... :P -->
<url>http://initech.artifactoryonline.com/initech/repo/</url>
<snapshots>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>

因此,ArtifactureOnline.com今天托管了我们所有的私有依赖项。哦,我们使用git作为我们的vcs,所以这个repository块从一开始就在pom.xml中。

问题是:ArtifactureOnline.com将在几个月后消失(被JFrog.io取代),我的公司无法影响这一决定。ArtifactureOnline.com的所有者发表了一份声明,称一旦到了这个时候,从他们不推荐使用的主机获取资源的尝试将失败。

这对我们来说是个问题。我们在十几个项目中有数以万计的提交,这些项目依赖于这个不推荐使用的存储库。这些承诺经过了严格的QA流程,代表了我公司十多年的辛勤工作。然而,一旦发生这种更改,并且弃用的主机脱机,所有一度有效的构建都将由于缺少依赖链接而突然中断。任何想要使用我们应用程序代码的旧版本的人都需要创建一个新分支并重新编写存储库标记!这对我们来说是一个大问题。(如果你需要平分来隔离一个旧的bug,上帝保佑你。)

我们该如何处理?有没有一种方法可以追溯性地修改我们过去项目中的pom,使替换存储库对我们的git-reso的完整时间线可见?

您可以随时向存储库添加镜像。这里的处理方式。您可以将其添加到每个pom.xml或添加到settings.xml。后者的默认位置是~/.m2/settings.xml

最新更新