【问题标题】:Jenkins / Maven Release Plugin (cascade release)Jenkins / Maven 发布插件(级联发布)
【发布时间】:2013-04-02 11:32:18
【问题描述】:

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

所以理想情况下,我会去我在 Jenkins 中的顶级项目,单击执行“mvn release:prepare”的按钮,瞧,所有依赖项和项目本身都已发布。

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

有没有办法从 Jenkins 运行“mvn release:prepare”,然后释放家属?有这个插件吗?

如果我尝试在本地运行此命令,我有一个错误:很高兴发布所有依赖项,但是当发布主项目时,它会在 Artifactory 中查找已发布的依赖项 jar。但当然它们不在那里——它们在我的本地仓库中,但不在 artifactory 的仓库中。我更愿意在构建服务器上执行此操作,因为它不会有我的环境的任何特质。

但是如果没有 jenkins 插件,我如何在本地发布,并且仍然让 Artifactory/Jenkins 记录最新版本?

【问题讨论】:

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


    【解决方案1】:

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

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

    这里是问题集和讨论的链接:

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

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

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

    【讨论】:

      【解决方案2】:

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

      你有M2Release pluginmaven-versions plugin。我不认为你可以轻易地做你想做的事。所以我会写一个这样的脚本:

      • 版本 C(mvn 版本)
      • 在 A 和 B 中更新 C 版本(mvn 版本:use-next-releases)
      • 版本 B(mvn 版本)
      • 在 A 中更新 B 版本(mvn 版本:use-next-releases)
      • 版本 A(mvn 版本)

      【讨论】:

      • 是的,我有该插件的最新版本,但它不做级联版本。如果你有 A 依赖于 B 依赖于 C,你必须在 C 上单击“执行 Maven 发布”,然后在 B 上,然后在 A 上。如果你先尝试 A,它会显示“由于未发布的依赖关系,无法发布项目"
      猜你喜欢
      • 2014-09-12
      • 2013-09-06
      • 2018-06-02
      • 1970-01-01
      • 2012-02-17
      • 2020-05-07
      • 2018-03-29
      • 2015-11-25
      • 1970-01-01
      相关资源
      最近更新 更多