Webアプリケーションアーカイブ(war)ファイルを作成するコアタスク。
(org.apache.tools.ant.taskdefs.War extends Jar)
属性 | 説明 |
---|---|
destfile | 生成するwarファイル名 |
webxml | WEB-INF/web.xmlになるファイル |
タグ | 説明 | 備考 |
---|---|---|
<fileset></fileset> | warファイル直下に格納するファイルやディレクトリー。 | |
<classes></classes> | WEB-INF/classesに格納するファイル(やディレクトリー)。 | 使用法はfilesetと同様。 |
<lib name="jarファイル"/> | WEB-INF/libに格納するjarファイル。 | 1ファイルだけ指定。 |
<lib dir="ディレクトリー" /> | そのディレクトリー直下のjarファイル全て。 |
ディレクトリー構造が以下のようになっていることを仮定。
C:\workspace3\web> tree フォルダ パスの一覧 C:. ├─bin ├─classes │ └─jp │ └─hishidama │ └─sample ├─webapps │ ├─css │ └─WEB-INF ├─src │ └─jp │ └─hishidama │ └─sample └─xml
build.xmlはbinの下にあり、webapps配下をwarファイル化する。
生成するwarファイルは、build.xmlと同じbinの下に作るものとする。
<?xml version="1.0" encoding="Shift_JIS"?> <project name="war" default="mk_war" basedir=".." > <target name="mk_war"> <war destfile="bin/test.war" webxml="xml/web1.xml"> <fileset dir="webapps"> <!-- <include name="**/*" /> --> <include name="**/*.jsp" /> <include name="**/*.html" /> <include name="**/*.css" /> <exclude name="**/web.xml" /> </fileset> <!-- クラス全部 --> <classes dir="classes" /> <!-- <classes dir="classes"> <exclude name="**/ejb/*" /> </classes> --> <!-- ライブラリー --> <lib file="C:\eclipse3\plugins\org.apache.ant_1.6.5\lib\ant.jar" /> <!-- WEB-INF/lib/ant.jarとなる --> <!-- <lib dir="C:\eclipse3\plugins\org.apache.ant_1.6.5\lib" /> ←lib直下のjarファイル全て --> </war> </target> </project>
webxml属性でweb.xmlファイルを指定するが、このファイル名や場所は何でもよい。自動的に「web.xml」という名前に変換してWEB-INF直下にコピーしてくれる。
そして、「WEB-INF/web.xml」というファイルがwarタスクのボディーのfilesetでの指定に別途含まれていてはダメ(タスク実行時に警告となる)。したがって念の為「<exclude name="**/web.xml" />」を入れておくとよい。