如何将 Maven 包从 Nexus 迁移到 Azure Artifacts

2024-03-31

我正在尝试将构建包从本地 Nexus Repository Manager 迁移到 Azure Artifacts。我找到了这个微软链接 https://learn.microsoft.com/en-us/azure/devops/artifacts/tutorials/migrate-packages?view=azure-devops解释如何使用 Powershell 脚本为 NuGet(.NET 包管理器)执行此操作,但 Maven 没有这样的工具。

我正在考虑使用“maven cleancompile”检索所有构建文件,然后将我的 pom.xml 文件指向 Azure Artifacts,然后以某种方式推送它们。然而,包的数量达到了100k,并且有很多应用程序使用它。所以这感觉是一种非常笨拙的方法,需要付出很大的努力,并且有很大的出错空间。

有人对我有什么建议吗?


事实证明,我的问题主要是由于我对 Artifact 存储库和项目依赖链的理解有限造成的。显然,Artifact 存储库会缓存所有上游存储库,因此这就是其中有 100k 个文件的原因。最后,只有两个公司特定的依赖项需要移动。

我通过以下方式完成了迁移(适用于所有 Maven 迁移):

克隆链中最高的依赖项。 (可能包含公共名称或父名称)

将 Azure Artifacts 配置添加到 ${USER_HOME}/.m2/settings.xml 和 pom.xml,如下所述:

从当前存储库中检索依赖项

mvn install
mvn package

创建发布版本(后面不带 -SNAPSHOT)并将其推送到 Azure Artifacts (否则您将收到 Can't release project due to nonreleased dependency 错误)

mvn release:clean
mvn release:prepare
mvn release:perform

现在您已经有了 robeco-common-version1.0.16 版本。现在将其部署到 Azure Artifacts

mvn deploy

您应该看到类似于 Uploading to Maven-feed 的内容:https://robeco.pkgs.visualstudio.com/ https://robeco.pkgs.visualstudio.com/....

对所有后续公司特定的依赖项执行相同的步骤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Maven 包从 Nexus 迁移到 Azure Artifacts 的相关文章

随机推荐