Jenkins / Maven Release Plugin(级联发布)

时间:2013-04-10 14:42:02

标签: maven jenkins maven-3 maven-release-plugin artifactory

我有一堆具有足够依赖性的项目,想到单击“执行Maven发布”并在每个依赖项上手动输入我的SVN用户名/密码,自下而上,会带来拖延的浓雾。

理想情况下,我会去Jenkins的顶级项目,单击一个“mvn release:prepare”的按钮,然后释放所有依赖项和项目本身。

我的设置是Maven3,SVN,Jenkins,Artifactory ......

有没有办法从Jenkins运行“mvn release:prepare”,然后发布并释放家属?是否有插件?

如果我尝试在本地运行此命令,我有一个错误:很高兴发布所有依赖项,但是当它发布主项目时,它会在Artifactory中查找已发布的依赖项jar。但当然他们不在那里 - 他们在我当地的回购中,但不在神器的回购中。我宁愿在构建服务器上这样做,因为它不会对我的环境有任何特性。

但如果没有jenkins插件,我怎么可以在本地发布,还有Artifactory / Jenkins注意到最新版本?

2 个答案:

答案 0 :(得分:0)

[我更新了答案以提供更好的方法]

您已获得M2Release pluginmaven-versions plugin。我认为你不能轻易做到你想做的事。所以我会写一个脚本,就像这样:

  • 发布C(mvn发布)
  • 在A&中更新C版本B(mvn版本:use-next-releases)
  • 发布B(mvn发布)
  • 更新A中的B版本(mvn版本:use-next-releases)
  • 发布A(mvn发布)

答案 1 :(得分:0)

我也一直在研究这个问题。以前我使用过ruby脚本,然后使用REST来推送Jenkins的构建。当然,设置每个新项目有点痛苦,但确实有效。维持这是一场噩梦。

前几天我偶然发现了这件事。我还没有实现它,但听起来很有希望。当然,我要解决的部分问题是父母拥有每个项目的所有依赖关系(呃)。

以下是问题集和讨论的链接:

https://groups.google.com/forum/#!msg/jenkinsci-users/4OZsB9LV6nE/YsyqhuMcZQgJ

这是实际插件的链接。可能值得一试。

https://github.com/barchart/barchart-jenkins-cascade-plugin/wiki