Reputation: 1423
In maven project with Git source code, Is it possible whenever I am compiling a build with maven, to read the last commit of the git and commit number.
I want to use that commit number to be able to find the last commit.
Upvotes: 15
Views: 12815
Reputation: 952
I tried to use with Spring Boot and line git.commit.id=${git.commit.id}
didn't work. I had to use [email protected]@
Upvotes: 2
Reputation: 4857
You can use maven-buildnumber-plugin, which supports Git among a few other SCM systems.
It also has additional feature related to generating unique build number, besides just getting revision/commit ID: figure out SCM branch, add timestamps, use short hashes, etc.
Upvotes: 4
Reputation: 53482
This is assuming you want to read that information, then store it in a property file. Based on 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>
git.properties in /src/main/resources:
git.commit.id=${git.commit.id}
Upvotes: 12