我有一个我希望与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 release:clean release:prepare release:perform -X
-Dproject.dev.parent.group.id:parent-artifact:pom=1.0.1-SNAPSHOT -Dproject.rel.parent.group.id:parent-artifact:pom=1.0.0 release:clean release:prepare release:perform -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 release:clean release:prepare release:perform -X
这些都没有解决问题。
如何配置Jenkins插件以设置父项目版本?
答案 0 :(得分:0)
作为替代方案,您可以使用Versions Maven Plugin在自己的构建步骤中设置父版本:
mvn versions:update-parent
或设置特定版本
mvn versions:update-parent "-DparentVersion=[1.2.0]"