我正在尝试将构建包从本地 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(使用前将#替换为@)