如何使用Azure工件中的相同版本号更新maven依赖项

问题描述 投票:0回答:1

我们将maven私有存储库Nexus更改为Azure Artifacts。当我们使用某个版本上传私有maven依赖时,它告诉我们以下信息:

[错误]无法执行目标org.apache.maven.plugins:maven-deploy-plugin:2.7:部署(默认部署)项目HmapBasic:无法部署工件:无法传输工件com.hand:HmapBasic:pom: 3.0.3-RELEASE from / to dev-azure-com-kohlerdevops-konnect-unified(https://pkgs.dev.azure.com/KohlerDevOps/_packaging/Konnect-Unified/maven/v1/):无法传输文件:https://pkgs.dev.azure.com/KohlerDevOps/_packaging/Konnect-Unified/maven/v1/com/hand/HmapBasic/3.0.3-RELEASE/HmapBasic-3.0.3-RELEASE.pom。返回码是:409

我搜索了代码409错误。这意味着我们已经使用此版本上传了依赖项,我们无法再次上传。我们希望在不更改版本的情况下使用新的依赖关系覆盖旧的(因为如果我们更改版本,我们所有的项目都需要更改pom.xml)

我们怎么能在Azure Artifacts中做到这一点?

azure-devops azure-artifacts
1个回答
0
投票

如何使用Azure工件中的相同版本号更新maven依赖项

我担心你必须改变pom.xml,我知道这对你来说是多么令人沮丧。但这就是Azure Artifacts故意设计的内容,以确保构建结果的正确性。

检查文件:Understand immutability of packages.

将特定版本的软件包发布到源后,该版本号将永久保留。您无法上载具有相同版本号的较新版本包,或删除它并在同一版本上载新包。

这个设计的原因:

这是因为许多包客户端(包括NuGet)会在您的计算机上保留包的本地缓存。一旦客户端缓存了特定的包@版本,它将在未来的安装/恢复请求中返回该副本。如果在服务器上将package @ version(rev 1)替换为新的软件包@版本(rev 2),则客户端无法区分。客户端仍在缓存中使用旧版本。这可能导致不同机器的不确定构建结果。

所以我们无法覆盖已经上传的所有包,即使我们无法删除它们并重新上传。要解决此问题,唯一的方法是使用新版本上载包。

查看我的another thread了解更多信息。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.