Jenkins 的 maven 发布插件 - 如何设置父项目版本?

Posted

技术标签:

【中文标题】Jenkins 的 maven 发布插件 - 如何设置父项目版本?【英文标题】:Jenkins's maven release plugin - How to set parent project version? 【发布时间】:2016-08-23 09:56:55 【问题描述】:

我有一个多模块项目,我想与 Jenkins 一起发布。我使用 Maven 3.3.1、Jenkins 1.651.3 和 maven-release-plugin 0.14.0

我为父项目创建一份工作,为每个子项目创建一份工作。

这是父配置:

pom.xml:

<groupId>parent.group.id</groupId>
<artifactId>parent-artifact</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<scm>
    <url>http://mygitrepo/parent-project.git</url>
    <connection>scm:git:git://mygitrepo/parent-project.git</connection>
    <developerConnection>scm:git:http://mygitrepo/parent-project.git</developerConnection>
</scm>

Jenkins 配置:

当我为父项目执行 maven 发布时,它可以工作。

现在我为一个子项目做同样的事情。

pom.xml:

<parent>
    <groupId>parent.group.id</groupId>
    <artifactId>parent-artifact</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<scm>
    <url>http://mygitrepo/sub-project.git</url>
    <connection>scm:git:git://mygitrepo/sub-project.git</connection>
    <developerConnection>scm:git:http://mygitrepo/sub-project.git</developerConnection>
</scm>

使用相同的 Jenkins 配置。我收到了这个错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on project sub-project: Can't release project due to non released dependencies :
[ERROR] parent.group.id:parent-artifact:pom:1.0.0-SNAPSHOT

插件似乎没有用发布版本替换父版本。

我在maven release plugin's documentation 中读到我可以使用“-Dproject.dev”和“-Dproject.rel”来指定要使用的父版本。

所以我尝试了这个:

-Dproject.dev.parent.group.id:parent-artifact=1.0.1-SNAPSHO -Dproject.rel.parent.group.id:parent-artifact=1.0.0 发布:清洁发布:准备发布:执行-X

-Dproject.dev.parent.group.id:parent-artifact:pom=1.0.1-SNAPSHOT -Dproject.rel.parent.group.id:parent-artifact:pom=1.0.0 发布:清洁发布:准备发布:执行-X

-Dproject.dev.parent.group.id:parent-artifact:pom:1.0.0-SNAPSHOT=1.0.1-SNAPSHOT -Dproject.rel.parent.group.id:parent-artifact:pom:1.0.0-SNAPSHOT=1.0.0 发布:清洁发布:准备发布:执行-X

这些都不能解决问题。

如何配置 Jenkins 插件来设置父项目版本?

【问题讨论】:

【参考方案1】:

作为替代方案,您可以使用Versions Maven Plugin 在自己的构建步骤中设置父版本:

mvn versions:update-parent

或设置特定版本

mvn versions:update-parent "-DparentVersion=[1.2.0]"

【讨论】:

以上是关于Jenkins 的 maven 发布插件 - 如何设置父项目版本?的主要内容,如果未能解决你的问题,请参考以下文章

在使用像 Hudson/Jenkins 这样的 CI 工具时,我如何成功地将 Maven 发布插件与 GitHub(或 GitHub 企业)一起使用

Maven 发布插件 Jenkins 不断将 Trunk 复制到 Tag 而不是 Branch

是否有 Maven 插件来创建 Jenkins 作业

jenkins 插件介绍

Jenkins Git 插件分离 HEAD

jenkins构建maven项目