maven 增加git commit 等信息

 <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 提交信息,帮助识别应用具体版本来源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值