tokuhirom's Blog

[java] どのブランチから作られた jar かをわかりやすくしたい

どのリビジョンが実際にデプロイされてるかをその場ですぐに確認したいというような要求がある。

そういうわけで、jar の中にリビジョン情報などを埋め込みたい。 そんなときには git-commit-id-plugin が便利。

https://github.com/ktoso/maven-git-commit-id-plugin

設定がごちゃごちゃと書いてあるが、ごちゃごちゃ書かなくても OK である。

以下のように書けばOK。

<build>
    <finalName>${project.artifactId}-${project.version}-${scmBranch}-r${buildNumber}-</finalName>
    <plugins>
        <plugin>
            <groupId>pl.project13.maven</groupId>
            <artifactId>git-commit-id-plugin</artifactId>
            <version>2.1.12</version>
            <executions>
                <execution>
                    <goals>
                        <goal>revision</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <verbose>true</verbose>
                <generateGitPropertiesFile>true</generateGitPropertiesFile>
            </configuration>
        </plugin>
    </plugins>
</build>

こうしておけば、jar の中に git.properties が含まれるようになるのでこれを見ればOK。 JMX でこれを獲得可能にしておくと remote からも確認できて便利ちゃん

現在弊社では war を展開して deploy しているので、 ${BASEDIR}/WEB-INF/classes/git.properties を見ればどのブランチから作られたかわかる。超ベンリ!