我希望能够通过在Maven发布插件(mvn -B release:prepare
)中使用非交互模式来自动增加Java项目的发布版本。但是,我不想使用默认的Maven版本控制架构。
我要使用的架构是<major>.<minor>.<bugfix>-SNAPSHOT
。我确实在pom文件中做到了这一点,但是Maven尝试按如下方式增加它:
1.0.0-SNAPSHOT
1.0.1-SNAPSHOT
1.0.2-SNAPSHOT
...
但是,我希望能够对此进行控制,尽管有时候我确实有错误修复和上述增量工作,但大多数时候我想发布次要版本,因此,增量看起来像这样:
1.0.0-SNAPSHOT
1.1.0-SNAPSHOT
1.2.0-SNAPSHOT
...
答案 0 :(得分:1)
您可以通过build-helper-maven-plugin这样处理:
mvn build-helper:parse-version versions:set \
release:prepare \
-DdevelopmentVersion =\${parsedVersion.majorVersion}.\${parsedVersion.nextMinorVersion}.0-SNAPSHOT \
release:perform
这会将1.1.0-SNAPSHOT
设置为下一个开发版本。下次调用发布插件时,它将从中生成1.1.0
,如果您不喜欢,则会自动递增1.1.1-SNAPSHOT
只需使用上面的电话...
答案 1 :(得分:0)
“ maven方式”是遵循maven规则或创建自定义插件。 只要您想做自己想做的事,Maven就可以很好地发挥作用。 也许适合您的解决方案是在大多数情况下仅使用“ 1.1”,如果要进行错误修复,则可以手动添加第三个数字。
但是,如果您真的想与Maven对抗,则可以从其他一些插件中设置属性。例如:
<profile>
<id>customversionnumber</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<executions>
<execution>
<id>set-release-version</id>
<phase>initialize</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
project.properties.setProperty("releaseVersion","1.3.0")
System.out.println("releaseVersion set to 1.3.0")
</source>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
然后,您将像这样调用发布插件
mvn -Pcustomversionnumber initialize release:prepare
。
不管'version'标记中有什么内容,它都会将其发布为“ 1.3.0”。当然,我必须自己编码该数字。