【发布时间】:2013-04-15 10:47:19
【问题描述】:
我有一份 Jenkins 工作,它使用 maven 构建目标“干净包部署”为主 git 分支。但是,由于 nexus 存储库不允许重新部署,如果 Jenkins 作业在没有更改版本的情况下第二次运行,它将失败并出现预期的 400 Bad Request 错误:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy)
on project common-library:
Failed to deploy artifacts: Could not transfer artifact
net.bacon.common:common-library:pom:1.2.13 from/to bacon-releases
(https://maven.bacon.com/nexus/content/repositories/releases):
Failed to transfer file:
https://maven.bacon.com/nexus/content/repositories/releases/net/bacon/common/common-library/1.2.13/common-library-1.2.13.pom.
Return code is: 400, ReasonPhrase:Bad Request.
任何人都可以提出不同的策略,从而可以运行部署目标而不会导致 Jenkins 作业失败?
【问题讨论】:
-
您要部署快照还是发布版本?
-
你不应该运行clean package deploy,因为在部署阶段包阶段正在第二次运行。看起来你没有注意到生命周期。只需要运行 clean deploy。如果您尝试部署已部署的工件,则无法再次运行它。为此,您应该使用 -SNAPSHOT 而不是版本。
-
@puce 在这种情况下是发布版本
-
@khmarbaise 感谢您提供以下信息:clean package deploy vs clean deploy。我知道重新部署的问题,所以我试图了解 is 何时是运行 deploy 目标的适当时间......有点 maven n00b,所以我想知道更有经验的人会做什么......