home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2012/06/10/Jenkinsのビルド情報をMANIFEST.MFに埋め込む

作成日: 2012-06-10 16:32:02   /   last updated at: 2012-06-10 16:37:21
カテゴリ: Java Maven 

荒っぽくメモ:古い掲示板のスレッドからコピペしたので、環境変数名がHUDSONになってるけど変える。

<pom> 
... 
<build> 
  <plugins> 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <inherited>true</inherited> 
      <configuration> 
        <archive> 
          <manifest> 
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
          </manifest> 
          <manifestEntries> 
            <Application-Name>${pom.build.finalName}</Application-Name> 
            <Application-Version>${pom.version}</Application-Version> 
            <Iteration-Name>${iteration}</Iteration-Name> 
            <Build-Time>${buildNumber}</Build-Time> 
            <HudsonBuildNumber>${BUILD_NUMBER}</HudsonBuildNumber> 
            <HudsonBuildId>${BUILD_ID}</HudsonBuildId> 
            <HudsonJobName>${JOB_NAME}</HudsonJobName> 
            <HudsonBuildTag>${BUILD_TAG}</HudsonBuildTag> 
            <HudsonExecutorNumber>${EXECUTOR_NUMBER}</HudsonExecutorNumber> 
            <HudsonJavaHome>${JAVA_HOME}</HudsonJavaHome> 
            <HudsonWorkspace>${WORKSPACE}</HudsonWorkspace> 
            <HudsonUrl>${HUDSON_URL}</HudsonUrl> 
            <HudsonSvnRevision>${SVN_REVISION}</HudsonSvnRevision> 
          </manifestEntries> 
        </archive> 
      </configuration> 
    </plugin> 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-ejb-plugin</artifactId> 
      <inherited>true</inherited> 
      <configuration> 
        <ejbVersion>3.0</ejbVersion> 
        <archive> 
          <manifest> 
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
          </manifest> 
          <manifestEntries> 
            <Application-Name>${pom.build.finalName}</Application-Name> 
            <Application-Version>${pom.version}</Application-Version> 
            <Iteration-Name>${iteration}</Iteration-Name> 
            <Build-Time>${buildNumber}</Build-Time> 
            <HudsonBuildNumber>${BUILD_NUMBER}</HudsonBuildNumber> 
            <HudsonBuildId>${BUILD_ID}</HudsonBuildId> 
            <HudsonJobName>${JOB_NAME}</HudsonJobName> 
            <HudsonBuildTag>${BUILD_TAG}</HudsonBuildTag> 
            <HudsonExecutorNumber>${EXECUTOR_NUMBER}</HudsonExecutorNumber> 
            <HudsonJavaHome>${JAVA_HOME}</HudsonJavaHome> 
            <HudsonWorkspace>${WORKSPACE}</HudsonWorkspace> 
            <HudsonUrl>${HUDSON_URL}</HudsonUrl> 
            <HudsonSvnRevision>${SVN_REVISION}</HudsonSvnRevision> 
          </manifestEntries> 
        </archive> 
      </configuration> 
    </plugin> 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
        <archive> 
          <manifest> 
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
          </manifest> 
          <manifestEntries> 
            <Application-Name>${pom.build.finalName}</Application-Name> 
            <Application-Version>${pom.version}</Application-Version> 
            <Iteration-Name>${iteration}</Iteration-Name> 
            <Build-Time>${buildNumber}</Build-Time> 
            <HudsonBuildNumber>${BUILD_NUMBER}</HudsonBuildNumber> 
            <HudsonBuildId>${BUILD_ID}</HudsonBuildId> 
            <HudsonJobName>${JOB_NAME}</HudsonJobName> 
            <HudsonBuildTag>${BUILD_TAG}</HudsonBuildTag> 
            <HudsonExecutorNumber>${EXECUTOR_NUMBER}</HudsonExecutorNumber> 
            <HudsonJavaHome>${JAVA_HOME}</HudsonJavaHome> 
            <HudsonWorkspace>${WORKSPACE}</HudsonWorkspace> 
            <HudsonUrl>${HUDSON_URL}</HudsonUrl> 
            <HudsonSvnRevision>${SVN_REVISION}</HudsonSvnRevision> 
          </manifestEntries> 
        </archive> 
      </configuration> 
    </plugin> 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-ear-plugin</artifactId> 
      <inherited>true</inherited> 
      <configuration> 
        <defaultJavaBundleDir>lib/</defaultJavaBundleDir> 
        <archive> 
          <manifest> 
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
          </manifest> 
          <manifestEntries> 
            <Application-Name>${pom.build.finalName}</Application-Name> 
            <Application-Version>${pom.version}</Application-Version> 
            <Iteration-Name>${iteration}</Iteration-Name> 
            <Build-Time>${buildNumber}</Build-Time> 
            <HudsonBuildNumber>${BUILD_NUMBER}</HudsonBuildNumber> 
            <HudsonBuildId>${BUILD_ID}</HudsonBuildId> 
            <HudsonJobName>${JOB_NAME}</HudsonJobName> 
            <HudsonBuildTag>${BUILD_TAG}</HudsonBuildTag> 
            <HudsonExecutorNumber>${EXECUTOR_NUMBER}</HudsonExecutorNumber> 
            <HudsonJavaHome>${JAVA_HOME}</HudsonJavaHome> 
            <HudsonWorkspace>${WORKSPACE}</HudsonWorkspace> 
            <HudsonUrl>${HUDSON_URL}</HudsonUrl> 
            <HudsonSvnRevision>${SVN_REVISION}</HudsonSvnRevision> 
          </manifestEntries> 
        </archive> 
      </configuration> 
    </plugin> 
    <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <inherited>true</inherited> 
      <executions> 
        <execution> 
          <phase>validate</phase> 
          <goals> 
            <goal>create</goal> 
          </goals> 
        </execution> 
      </executions> 
      <configuration> 
        <format>{0,date,yyyy-MM-dd HH:mm:ss}</format> 
        <items> 
          <item>timestamp</item> 
        </items> 
      </configuration> 
    </plugin> 
  </plugins> 
</build> 
... 
</pom> 

ちゃんとしたのは、オライリーのJenkins本(日本語版), "5.6.4 ビルド中でのJenkinsの環境変数の利用" 参照。

MANIFEST.MFを読み込むには:

やっぱりビルドNOとか、ビルドに使ったソースコードリビジョン番号とか、見れるとカコイイ。

original url: https://www.glamenv-septzen.net/view/1088