在 Maven 项目和 git 配合使用时,有时候不同的分支会需要用不同的版本。举个例子:
首先分支 A 中使用 <version>1.0-A-SNAPSHOT</version>,然后在其基础上创建分支 B,在分支 B 中修改了 pom.xml,使用 <version>1.0-B-SNAPSHOT</version>。
之后当需要从 B 合并到 A 时,就会发现 pom.xml 的修改也合并过来了,使得 A 分支变成了 <version>1.0-B-SNAPSHOT</version>。这当然令人不爽。下面介绍一个 Maven 插件,允许你将当前分支作为变量放入 <version> 元素。
只要在 pom 的 <build> -> <plugins> 中加入以下插件:
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.6</version>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
</execution>
<execution>
<id>validate-the-git-infos</id>
<goals>
<goal>validateRevision</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
插件的最新版本在这里查看。
之后不论你在哪个分支,都可以统一用下面的版本号了:
<version>${git.branch}</version>