我正致力于在构建过程中自动增加X.Y.Z
版本。在这种情况下,我们不会删除SNAPSHOT
后缀(使其成为已发布的版本),而是增加版本的次要部分:
X.Y.Z-SNAPSHOT
=> X.Y.Z+1-SNAPSHOT
X.Y.Z-SNAPSHOT
=> X.Y.Z
我无法使用maven发布插件,因为它只能切断SNAPSHOT
后缀以使其发布版本。所以,我最终创建了一个自定义脚本,它具有增加版本的逻辑。
我的问题是如何才能最好地实施以下步骤:
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] ------------------------------------------------------------------------
非常感谢任何达到此要求的指示。
答案 0 :(得分:1)
我们正在考虑在类似情况下实际使用Maven Release Plugin(MRP)将所有版本号更改为X.Y.Z.N
:
X.Y.Z
是语义部分,在适当的人为指导发布期间很少发生变化N
是增量部分(除了序列排序无意义)MRP能够自动增加是的,MRP将创建另外两个提交(已发布版本和下一个SNAPSHOT
版本),但是......如果您的开发人员进行快照构建,则需要X.Y.Z.N-SNAPSHOT
个版本。如果你想要增量发布,你也需要X.Y.Z.N
。因此,同样的两个提交。
您只能avoid optionally is X.Y.Z.N
tagging等待X.Y.Z
。