X.Y.Z
ビルド プロセス中にバージョンを自動インクリメントするためのイニシアチブに取り組んでいます。この場合、SNAPSHOT
(リリース済みバージョンにするために) サフィックスを削除するのではなく、バージョンのマイナー部分を増やします。
X.Y.Z-SNAPSHOT
=>X.Y.Z+1-SNAPSHOT
- ない
X.Y.Z-SNAPSHOT
=>X.Y.Z
SNAPSHOT
maven リリース プラグインはサフィックスを切り離してリリース バージョンにすることしかできないため、使用できません。そのため、バージョンをインクリメントするロジックを持つカスタム スクリプトを作成することになりました。
ここでの私の質問は、次の手順をどのように実装するのが最善かということです:
pom.xml
from perforce をチェックしてください。- カスタム スクリプトを実行して、バージョンをインクリメントします。
pom.xml
デプロイが成功した場合は、変更をコミットします。
autoversion
上記のニーズを部分的に満たすMaven プロファイルを作成しました。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] ------------------------------------------------------------------------
要件を達成するための指針は高く評価されています。