git-commit-id-plugin
是一个 Maven 插件,用于在 Maven 项目的构建过程中自动获取 git 仓库的信息,如最后一次提交的 ID、分支名称、构建时间等,并将这些信息注入到项目的属性文件中。这对于跟踪项目版本和构建状态非常有用。
以下是如何在 Maven 项目中使用 git-commit-id-plugin
的基本步骤:
1 添加插件到 pom.xml 文件中
在你的 Maven 项目的 pom.xml
文件中,添加 git-commit-id-plugin
到 <plugins>
部分。
<build> <plugins> <plugin> <!-- https://mvnrepository.com/artifact/pl.project13.maven/git-commit-id-plugin --> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>4.0.5</version> <executions> <execution> <goals> <goal>revision</goal> </goals> </execution> </executions> <!-- 配置选项 --> <configuration> <dotGitDirectory>${project.basedir}/../.git</dotGitDirectory> <generateGitPropertiesFile>true</generateGitPropertiesFile> <failOnNoGitDirectory>false</failOnNoGitDirectory> <skipPoms>false</skipPoms> <generateGitPropertiesFilename> ${project.build.outputDirectory}/git.properties </generateGitPropertiesFilename> <gitDescribe> <!-- don't generate the describe property --> <skip>false</skip> <!-- abbrev commit id length --> <abbrev>8</abbrev> </gitDescribe> <includeOnlyProperties> <includeOnlyProperty>^git.branch$</includeOnlyProperty> <includeOnlyProperty>^git.build.(time|version)$</includeOnlyProperty> <includeOnlyProperty>^git.commit.(id|time)$</includeOnlyProperty> <includeOnlyProperty>^git.commit.id.abbrev$</includeOnlyProperty> </includeOnlyProperties> </configuration> </plugin> </plugins> </build>
2 配置插件
在 <configuration>
标签中,你可以配置多种选项,例如生成的属性文件的位置、包含哪些 git 属性等。默认情况下,插件会生成一个 git.properties
文件在 target/classes
目录下。
<configuration> <dotGitDirectory>${project.basedir}/.git</dotGitDirectory> <generateGitPropertiesFile>true</generateGitPropertiesFile> <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename> <format>properties</format> </configuration>
- 构建项目:
使用 Maven 命令构建项目,例如 mvn clean install
。在构建过程中,git-commit-id-plugin
插件会自动运行,并在指定的位置生成包含 git 信息的 git.properties
文件。
4 查看 git.properties 文件
打开生成的 git.properties
文件,你将看到类似以下的内容,其中包含了提交时间、提交记录、分支等信息:
#Generated by Git-Commit-Id-Plugin git.branch=main git.build.host=heal-mac git.build.time=2024-10-30T15:04:10+0800 git.build.version=1.0.0-SNAPSHOT git.commit.id=abcdef1234567890 git.commit.id.abbrev=abcdef1 git.commit.time=2024-10-28T12:34:56+0800 git.commit.message.full=Initial commit git.commit.message.short=Initial commit git.commit.user.name=Your Name git.commit.user.email=your.email@example.com git.commit.author.time=2024-10-26T21:11:39+0800 git.commit.committer.time=2024-10-26T21:11:39+0800
5 在应用中使用这些信息
你可以在应用程序中读取 git.properties
文件,并使用这些信息,例如显示当前版本的 Git 分支和提交 ID。
通过这种方式,你可以利用 git-commit-id-plugin
插件来自动获取和使用 Git 的提交时间、提交记录、分支等信息,从而帮助跟踪和管理你的项目版本。