【发布时间】:2014-03-09 11:16:54
【问题描述】:
假设我有一个 pom 文件,
<version>14.4.1-SNAPSHOT</version>
它定义了要构建的项目的版本。该值由我们的构建系统 (jenkins) 自动更新。
稍后,在其中一个插件中,我需要一个属性,它包含版本中的前两个数字,因此对于 14.4.1-SNAPSHOT 值,它将是“14.4”,对于 13.12。 39-SNAPSHOT 值将是“13.12”。
目前我们每个月都会手动更新这个值:
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.1</version>
<executions>
<execution>
<id>default-cli</id>
<phase>process-resources</phase>
<configuration>
<changeLogFile>src/main/resources/14.4/changeLog.xml</changeLogFile>
理想情况下,我希望有类似的东西
<changeLogFile>src/main/resources/${releaseVersion}/changeLog.xml</changeLogFile>
但是我如何从<version>14.4.1-SNAPSHOT</version> 自动计算得到这个${releaseVersion} (=14.4)?
在这种情况下,它是绝对自动化的,我们没有任何手动流程。
我可以在 pom 文件中使用任何表达式类型的语言,它可以解析字符串 14.4.1-SNAPSHOT 并从中生成 14.4 吗?
【问题讨论】:
-
你能改变父pom吗?
-
哦,请问您目前是如何提高版本的?通过 Maven 发布?
-
@LordT 是的,我想我可以,这取决于那里要改变什么。为什么?
-
@LortT 是的,我们在詹金斯有一份工作,手动/定期触发。没关系。我想避免在发布过程中为这个小插件更改我的版本..
标签: maven build-automation release-management