首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Jenkins作业部署maven策略

通过Jenkins作业部署maven策略
EN

Stack Overflow用户
提问于 2013-04-22 21:45:28
回答 5查看 7.2K关注 0票数 5

我有一个Jenkins的工作,它使用maven构建目标‘干净的包部署’作为主git分支。但是,由于nexus不允许重新部署,如果Jenkins作业在没有更改版本的情况下再次运行,它将失败,并显示预期的400 Bad Request错误:

代码语言:javascript
复制
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作业失败的情况下运行?

EN

回答 5

Stack Overflow用户

发布于 2013-04-22 21:51:18

我们所做的是自动构建快照。然后,版本会自动递增。

对于发布版本,我们使用maven发布插件并手动输入版本。但是,您可以让发布插件来完成这项工作。它将删除"-SNAPSHOT“构建,部署,然后,对于下一个发布版本,递增最后一个数字并再次追加"-SNAPSHOT”。

对于分发管理,您可以有两个repos,一个用于快照,另一个用于发布,具有不同的重新部署设置。

票数 4
EN

Stack Overflow用户

发布于 2013-07-09 14:24:40

我们采用“双重行动”解决方案:

  • Increment deploy

  • 运行mvn测试

  • 如果全部通过,我们将运行mvn test

这样,我们就不会尝试部署,直到我们知道所有都通过了,并且我们每次都部署了一个唯一的版本。

我希望这能帮到你。

票数 1
EN

Stack Overflow用户

发布于 2013-04-22 22:05:06

您应该确保master上的每个提交都在pom文件上带有自己的版本号。所以你不会有重新部署。

拒绝“重新部署”有一个很好的理由:发布版本的内容永远不应该改变。

如果您无法避免在master上使用相同版本号的提交,请考虑将链式jenkins作业更改为"clean“(仅将工件存储在本地存储库中),并使用"clean”创建一个仅手动启动的新作业。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16148712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档