Injecting current git commit id into Java webapp Injecting current git commit id into Java webapp git git

Injecting current git commit id into Java webapp


You can get the last commit SHA with

git rev-parse HEAD

but it's generally a lot more useful to use

git describe

which will give you something that looks like this:

v0.7.0-185-g83e38c7

This works if you have tags - it will tell you how many commits from the last valid tag your current checkout is at plus a partial SHA for that commit, so you can use it to base a checkout off of later. You can use this identifier just like a SHA in most circumstances, but it's much more human readable.


I don't know if there are any Ant task for git (I googled a bit without success), anyway Ant can update a properties file with Piotr's option (git rev-parse HEAD) and then in runtime use that properties to get the revision number. This is cleaner and IDE friendly than having Ant generating a .java file.


If it helps for someone else. I know yours is ANT

For MAVEN build, you could probably use git-commit-id-plugin in your pom.xml file

    <plugin>        <groupId>pl.project13.maven</groupId>        <artifactId>git-commit-id-plugin</artifactId>        <version>2.2.0</version>        <executions>            <execution>                <goals>                    <goal>revision</goal>                </goals>            </execution>        </executions>        <configuration>            <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>            <generateGitPropertiesFile>true</generateGitPropertiesFile>            <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>        </configuration>    </plugin>

Please go through :
1. http://www.baeldung.com/spring-git-information &
2. https://github.com/ktoso/maven-git-commit-id-plugin for more info.