<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.xml</include>
<include>**/*.json</include>
<include>**/*.sql</include>
<include>**/*.factories</include>
<include>**/*.properties</include>
<include>**/*.bpmn</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${git-commit-id-plugin.version}</version>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
</execution>
<execution>
<id>validate-the-git-infos</id>
<goals>
<goal>validateRevision</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
<configuration>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
<!-- that's the default value, you don't have to set it -->
<prefix>git</prefix>
<verbose>false</verbose>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties
</generateGitPropertiesFilename>
<gitDescribe>
<skip>false</skip>
<always>false</always>
<dirty>-dirty</dirty>
</gitDescribe>
</configuration>
</plugin>
<!-- sonar插件配置 start -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<configuration>
<skip>${maven.test.skip}</skip>
<destFile>${basedir}/target/jacoco.exec</destFile>
<output>file</output>
<append>true</append>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<phase>test-compile</phase>
</execution>
<execution>
<id>jacoco-site</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- sonar插件配置 end -->
</plugins>
</build>
git.commit.id.abbrev
是一个与 Git 相关的属性,通常用于在构建工具或应用中访问当前 Git 提交的缩写版本的哈希值。这种简约形式的提交 ID 通常足以提供唯一性,但更简洁易读。
在许多场合,尤其是在使用构建工具(如 Maven 或 Gradle)生成构建版本信息时,git.commit.id.abbrev
会被用来标记构建的具体版本或用于在某些输出中展示当前的源码状态。
如何获取 git.commit.id.abbrev
为了在构建工具中使用这个值,通常有几种方式来自动化获取这个信息:
Maven
在 Maven 项目中,你可以使用 git-commit-id-plugin
这个插件来自动生成与 Git 信息有关的属性。
配置示例:
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>4.0.0</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这个插件会生成一个 git.properties
文件,其中包含 git.commit.id.abbrev
等属性,供你在应用中读取。
Gradle
对于 Gradle,你可以使用类似的插件,com.gorylenko.gradle-git-properties
,来实现同样的功能。
配置示例:
plugins {
id "com.gorylenko.gradle-git-properties" version "2.3.1"
}
gitProperties {
keys = ['git.commit.id.abbrev']
}
这会在构建过程中生成 git.properties
文件,并写入相应的 Git 信息。
手动获取
如果你想手动获取而不使用插件,也可以通过 shell 脚本或者命令行获取:
git rev-parse --short HEAD
这条命令可以在命令行中运行,返回当前提交的短哈希。这可以被集成到你的构建脚本中,通过程序或者其他自动化工具使用。
使用实例
在将 git.commit.id.abbrev
集成到应用时,你可能需要读取 git.properties
文件。在 Spring Boot 中,可以很容易地通过 @Value
注入来访问这些属性。例如:
@Value("${git.commit.id.abbrev}")
private String commitIdAbbrev;
通过这些工具和方法,你可以有效地在项目构建或运行阶段使用 Git 提交信息,帮助识别应用具体版本来源。