读取git的最后一次提交和提交编号。

15
在使用 Git 作为源代码管理工具的 Maven 项目中,每当我使用 Maven 编译构建时,能否读取 Git 的最新提交并获取提交号呢?
我希望能够使用该提交号来查找最新的提交。
3个回答

12

假设你想要读取那些信息,然后将其存储在属性文件中。基于https://github.com/ktoso/maven-git-commit-id-plugin#using-the-plugin

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- snip other stuff... -->
    <build>
        <!-- GIT COMMIT ID PLUGIN CONFIGURATION -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>pl.project13.maven</groupId>
                <artifactId>git-commit-id-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>revision</goal>
                         </goals>
                    </execution>
                </executions>

                <configuration>
                    <commitIdGenerationMode>flat</commitIdGenerationMode>
                    <gitDescribe>
                        <skip>true</skip>
                    </gitDescribe>
                </configuration>

            </plugin>
            <!-- END OF GIT COMMIT ID PLUGIN CONFIGURATION -->

            <!-- other plugins -->
        </plugins>
    </build>
</project>

/src/main/resources中的git.properties:

git.commit.id=${git.commit.id}

这个文件是自动生成的吗?还是我需要明确地将它放在资源中? - Nisarg Patil
@NisargPatil 我不确定你指的是哪个文件,但是不,这不会创建任何文件。git.properties只是一个例子。 - eis

4
你可以使用maven-buildnumber-plugin,它支持Git和其他几种SCM系统。
除了获取修订/提交ID之外,它还具有生成唯一构建编号的其他功能:确定SCM分支、添加时间戳、使用短哈希等。

2

我尝试在Spring Boot中使用,但是这行代码git.commit.id=${git.commit.id}不能正常工作。我只能使用 git.commit.id=@git.commit.id@


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接