いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

SVNのリビジョン番号をビルド時にアーカイブファイル内の特定ファイルに含める

ビルドしたwarファイルの中身がいつのリビジョンの奴か見れるようにしておきたい、
みたいなことを言われたときに。

コマンドライン用のsvnをあらかじめ入れといて、以下をpom.xmlに追加。

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <phase>generate-resources</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <tasks>
        <mkdir dir="${project.build.directory}/jsp"/>
          <exec dir="${basedir}" executable="svn"
              failifexecutionfails="false"
              output="${project.build.directory}/jsp/svnver.jsp">
            <arg line="info"/>
          </exec>
        </tasks>
      </configuration>
    </execution>
  </executions>
</plugin>	

mkdirで先にディレクトリ掘っておくのがポイント。
あとはsvnver.jspにアクセスすればリビジョン番号とかが見れる。

JAR内のMANIFEST.MFとかに追加する場合は他の方法があるっぽくて、
そっちのがスマートっぽい。でもまあこれならGitとかでも使えるしね。
ありっちゃありかも。