kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

MANIFEST.MFファイルをwarファイルに含める

オープンソースのライブラリ(jar)のMETA-INF/MANIFEST.MF に
ビルドしたコンパイラの情報などが書かれている。

WARファイルを作成したときに、それを入れるにはどうしたらよいかと調べた。

参考
http://blogs.wankuma.com/kazuki/archive/2008/05/20/138442.aspx
http://lab.moyo.biz/recipes/java/ant/task/manifest.xsp
http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/CoreTasks/jar.html
http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/CoreTasks/war.html

build.xmlファイル
 ${} : build用のpropertiesに定義
 warタグに、manifest="${manifest.file}でベースとなる(テンプレート?)MANIFEST.MFのパスを指定
↓こんな感じで 

	
	<tstamp>
		<format property="build.time" pattern="yyyy/MM/dd HH:mm:ss" />
	</tstamp>

	<!-- MANIFEST.MF -->
	<manifest file="${manifest.file}">
		<attribute name="Created-Timestamp" value="${build.time}" />
	</manifest>
	
	<target name="war" depends="clean-war">
		<war destfile="・・・.war" 
                     webxml="${module}/WebContent/WEB-INF/web.xml" 
                     basedir="・・・" 
                     manifest="${manifest.file}">
			・・・
		</war>
	</target>

MANIFEST.MFファイル

	Manifest-Version: 1.0
	Ant-Version:Antのバージョン
	Created-By:コンパイラの情報
	Created-Timestamp:↑のbuild.xmlのbuild.timeがセット

のようにできた。