【发布时间】:2017-07-17 19:13:28
【问题描述】:
我有一个带有 M2 发布插件的 Jenkins。 我有一份构建和发布的工作。
使用的存储库具有 master 和 feature/bugfix 分支。 该作业被配置为构建所有分支。另外部署了master分支。 所有稳定的更改都合并到主分支中,但最新的更改(尚未工作)在错误修复分支中进行。因此,最新版本(mvn install)是在这个 bugfix 分支上进行的。
如果我想发布这个项目,jenkins 会采用最新的构建版本(bugfix 分支)并尝试发布它。由于 SNAPSHOT 依赖关系,这将失败。
我当然可以在发布时将“要构建的分支”设置为“主”。但是a)我需要在发布后重置它,b)每次我想发布时都需要这样做。
我也可以使用分支选项使这个构建参数化,但是这个作业不会被 scm 提交执行。
所以我的问题是:有没有办法/插件告诉 jenkins 发布一个特定的分支?
编辑: 我添加了我的 pom.xml,以便您可以提供一个易于理解的示例
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>my.parent.gid</groupId>
<artifactId>my.iarent.aid</artifactId>
<version>1.0.0</version>
</parent>
<name>Project Name</name>
<groupId>my.project.gid</groupId>
<artifactId>my.project.aid</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<url>${project_url}</url>
<ciManagement>
<system>${project_ciManagement.system}</system>
<url>${project_ciManagement.url}</url>
</ciManagement>
<scm>
<!-- read access -->
<connection>${project_scm.connection}</connection>
<!-- write access (release-plugin) -->
<developerConnection>${project_scm.developerConnection}</developerConnection>
<!-- browser access -->
<url>${project_scm.url}</url>
<tag>HEAD</tag>
</scm>
<properties>
<compiler.javaVersion>1.7</compiler.javaVersion>
<scm.repo>repo_name</scm.repo>
</properties>
<modules>
<module>Module1</module>
<module>Module2</module>
<module>Module3</module>
</modules>
【问题讨论】:
标签: maven jenkins maven-release-plugin