我正在主動在構建過程中自動增加X.Y.Z
版本。在這種情況下,我們不刪除SNAPSHOT
後綴(使它成爲一個發佈版本),而增加的版本,小的那部分:Maven自動增量發佈版本
- =>
X.Y.Z+1-SNAPSHOT
- NOT=>
X.Y.Z
我不能使用Maven發佈插件,因爲它只能切斷SNAPSHOT
後綴以使其發佈版本。所以,我最終創建了一個自定義腳本,它具有增加版本的邏輯。
我在這裏的問題是,我如何能夠最好地實現以下步驟:
- 退房是Perforce的
pom.xml
。 - 運行自定義腳本以增加版本。
- 如果部署成功,則提交
pom.xml
更改。
我創建了一個maven配置文件autoversion
,它部分滿足了上述需求。作爲生成資源階段的一部分,Maven首先增加版本。但是,它最終會部署項目的舊版本。
mvn -Pautoversion clean deploy
<profile>
<id>autoversion</id>
<build>
<plugins>
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>Calculate version</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/autoincrementversion.sh</executable>
<arguments>
<argument>-bdj</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>edit</goal>
<goal>checkin</goal>
</goals>
<configuration>
<username>jenkins</username>
<basedir>./</basedir>
<includes>pom.xml</includes>
<message>Auto increment pom version</message>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
[INFO] ------------------------------------------------------------------------
[INFO] Building project 99.22.8
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:1.3.1:set (default-cli) @ project ---
[INFO] Searching for local aggregator root...
[INFO] Local aggregation root: /opt/project/auto-increment-release
[INFO] Processing com.project
[INFO] Updating project com.project
[INFO] from version 99.22.8 to 99.22.9
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.135s
[INFO] Finished at: Wed Nov 05 23:15:13 PST 2014
[INFO] Final Memory: 11M/152M
[INFO] ------------------------------------------------------------------------
任何指針來實現的要求是高度讚賞。
我會說你應該深入研究[Maven 3.2.1](http://maven.apache.org/docs/3.2.1/release-notes.html),直接從外部支持屬性。請參閱發行說明「持續交付友好版本」。 – khmarbaise 2014-11-06 20:41:44
感謝您的指點,很高興知道,但現在升級並不是立竿見影的選擇,因爲我們必須測試各種其他因素。 – user6930 2014-11-06 23:18:44
@ user6930,我不確定你在這個部分中是否正確,Maven Release Plugin是_「只能切斷SNAPSHOT後綴以使其發佈版本」_。它實際上建議自動遞增該版本的最小有效數字。這不是你想要的嗎? – uvsmtid 2015-07-22 17:00:32