How to get Git information in Java Application

In this post, we are going to see how to get the GIT information in a Java application.

To do that, we have to use the maven-git-commit-id-plugin plugin. Refer it @maven-git-commit-id-plugin

Now let’s see how we gonna do that.

1. Include the below plugin configuration in your Maven POM file.


  <plugin>
                <groupId>pl.project13.maven</groupId>
                <artifactId>git-commit-id-plugin</artifactId>
                <version>2.1.13</version>
                <executions>
                    <execution>
                        <id>populate-git-commit-information</id>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                        <configuration>
                            <verbose>true</verbose>
                            <dateFormat>MM/dd/yyyy HH:mm:ss Z</dateFormat>
                            <abbrevLength>8</abbrevLength>
                            <generateGitPropertiesFile>true</generateGitPropertiesFile>
                            <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
                </configuration>
            </plugin> 
            

2. Then do maven install (mvn install). You can set the verbose as false if you don’t want to see the git commit id plugin log.

3. After the build is done, then go to target/classes folder. You will see git.properties contains the git related information. You can read this properties file in your application and use it.

Sample code is given below.


 static Properties properties = new Properties();
    static{
        try (InputStream is = this.class.getClassLoader()
                .getResourceAsStream("git.properties")) {
            properties.load(is);
        }
        catch (IOException io) {
            io.printStackTrace();
        }
    }

File Name: git.properties
File Path: /target/classes/git.properties
Sample properties are given below.



#Generated by Git-Commit-Id-Plugin
#Fri Nov 17 09:49:44 EST 2017
git.tags=
git.commit.id.abbrev=8ef4712a
git.commit.user.email=dkbalachandar@gmail.com
git.commit.message.full=Update Dockerfile
git.commit.id=8ef4712acd077d89b875c5bf67c20af1dbb8bb24
git.commit.id.describe-short=8ef4712-dirty
git.commit.message.short=Update Dockerfile
git.commit.user.name=Balachandar
git.build.user.name=Balachandar
git.commit.id.describe=8ef4712-dirty
git.build.user.email=dkbalachandar@gmail.com
git.branch=master
git.commit.time=09/19/2017 18\:25\:16 -0400
git.dirty=true
git.build.time=11/17/2017 09\:49\:44 -0500
git.remote.origin.url=https\://github.com/dkbalachandar/java-rest-docker.git


Refer my code @java-rest-docker

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s