Maven发布:批处理模式下的下一个开发版本

ber*_*enp 12 maven maven-release-plugin

我已经配置了一个Jenkins作业来自动释放我的maven项目.这可以通过以下mvn --batch-mode clean release:prepare release:perform 方式完成:在批处理模式下,将自动确定发行版本和开发版本.这正是我想要的.

问题是我想增加第二个版本而不是第三个版本.因此,当我发布1.2.0版本时,下一个开发版本必须是1.3.0-SNAPSHOT.不是1.2.1-SNAPSHOT.添加命令行参数不是一个选项,因为这会强制我不断编辑构建作业.

有关如何更改用于确定下一个开发版本的算法的任何建议?

小智 8

我知道这是一篇有点老的帖子,但我没有在网上的任何地方找到我真正喜欢的答案,我能够想出一些可能对其他人有用的东西......

我想在 OP 状态下增加小版本,并且我能够通过在我的项目 POM 中使用构建助手插件(用于解析版本)和发布插件的组合来实现。请注意 POM 中引用的“初始化”阶段和 maven 运行属性...

这是 POM 的摘录,我们使用构建助手插件来解析我们可以在发布插件中引用的版本...

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>${maven.build.helper.plugin.version}</version>
                <executions>
                    <execution>
                        <id>parse-versions-for-release</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>parse-version</goal>
                        </goals>
                        <configuration>
                            <propertyPrefix>parsedVersion</propertyPrefix>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>${maven.release.plugin.version}</version>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat>
                    <useReleaseProfile>false</useReleaseProfile>
                    <developmentVersion>${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}.0-SNAPSHOT</developmentVersion>
                </configuration>
            </plugin>
Run Code Online (Sandbox Code Playgroud)

现在我们可以运行一个非常正常的版本,但是添加“初始化”阶段以触发版本解析(并确保它在查找解析版本之前发生)......

mvn initialize release:clean release:prepare release:perform
Run Code Online (Sandbox Code Playgroud)


Jea*_*evy -1

正如 Khmarbaise 所建议的,我也认为您的问题没有解决方案。

是否有任何规则可以自动告诉您是否必须更改第二个或第三个数字?确实,我不这么认为。也就是说,你不能要求 Maven / Jenkins 为你选择它,一个主要版本数字,另一个次要版本数字。

您必须通过参数更改它,或者让用户通过 Jenkins M2 Release 插件配置它,如 willome 的建议。它只能是手动操作。