【问题标题】:Maven release from Jenkins来自 Jenkins 的 Maven 版本
【发布时间】:2016-01-02 21:36:53
【问题描述】:

我的项目中有以下模块,

module - 1
module - 2 
module - 3
module - 4

在 Jenkins maven 版本中,我只需要发布模块 - 1 和模块 - 2。

为此,我在根 pom 中创建了配置文件,其中包括模块 -1 和模块 -2。

<profile>
    <id>jenkins-release</id>
    <modules>
        <module>module - 1</module>
        <module>module - 2</module>
    </modules>
</profile>

如何在 Jenkins maven 发布期间执行此配置文件?

在 Jenkins 的“发布目标和选项”下指定配置文件 (-P jenkins-release release:prepare release:perform) 不起作用。

在本地它适用于:

mvn -P jenkins-release release:perform

【问题讨论】:

  • 你必须把-P后面的空格去掉:-Pjenkins-release release:prepare release:perform
  • @hotzst 我猜这没关系。它在本地工作。当我尝试使用“mvn -P jenkins-release release:perform”在本地发布时。
  • jenkins 构建的输出究竟是什么?它是为所有四个模块创建一个版本,还是构建失败?
  • @hotzst 它构建了我不想做的所有模块。因为在某些模块中不需要发布,因此不包括发布插件。
  • 强烈建议您先尝试手动构建它,一旦您可以使用它,将您拥有的任何东西复制到Jenkins,这样您就不需要处理2个不确定性(Jenkins +发布插件参数)

标签: maven jenkins release


【解决方案1】:

您的本地调用不一样。您只指定了目标 release:prepare,而在 Jenkins 中它是 release:prepare release:perform

有多个调用发生,因此您需要使用

-Darguments=-Pjenkins-release

您会注意到我省略了-Pjenkins-release 之间的空格,以避免将整个内容放在引号之间,但我将把它留给您。

另一种选择是为发布插件使用releaseProfile 设置。

更多详情请查看Profile activation on both release:prepare and release:perform

这有点冗长,但您应该同时使用-Prelease:prepare)和-Darguments=...release:perform)激活配置文件。另外,请确保您使用最新版本的maven-release-plugin,因为这在不久前有问题。

像这样:mvn -Darguments=-Pjenkins-release -Pjenkins-release release:prepare release:perform

另一种方法是在自定义系统属性(例如-DdoMyRelease=true)或您通过 Jenkins 设置的环境变量上激活配置文件。

您是否探索过&lt;releaseProfiles&gt; 选项?如果您正在从那里进行发布,请将其放在根 POM 中。

【讨论】:

  • 没有帮助。我已将我的 jenkins 配置的屏幕截图添加到问题中
  • 在哪里添加发布配置文件?在根/父 pom 中?或所有项目 pom?
猜你喜欢
  • 2015-09-24
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
相关资源
最近更新 更多