我有一个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作业失败的情况下运行?
发布于 2013-04-22 21:51:18
我们所做的是自动构建快照。然后,版本会自动递增。
对于发布版本,我们使用maven发布插件并手动输入版本。但是,您可以让发布插件来完成这项工作。它将删除"-SNAPSHOT“构建,部署,然后,对于下一个发布版本,递增最后一个数字并再次追加"-SNAPSHOT”。
对于分发管理,您可以有两个repos,一个用于快照,另一个用于发布,具有不同的重新部署设置。
发布于 2013-07-09 14:24:40
我们采用“双重行动”解决方案:
这样,我们就不会尝试部署,直到我们知道所有都通过了,并且我们每次都部署了一个唯一的版本。
我希望这能帮到你。
发布于 2013-04-22 22:05:06
您应该确保master上的每个提交都在pom文件上带有自己的版本号。所以你不会有重新部署。
拒绝“重新部署”有一个很好的理由:发布版本的内容永远不应该改变。
如果您无法避免在master上使用相同版本号的提交,请考虑将链式jenkins作业更改为"clean“(仅将工件存储在本地存储库中),并使用"clean”创建一个仅手动启动的新作业。
https://stackoverflow.com/questions/16148712
复制相似问题