Ant で war ファイルを作成する
Ant で war ファイルを作成する build.xml を書いてみたので、メモしておきます。
ディレクトリ構造は以下の感じにしてみました。
build.xml testApp/ ├── classes ├── lib │ └── test.jar ├── page │ ├── index.html │ └── jsp │ └── test.jsp ├── src │ └── test │ └── hello │ └── HelloServlet.java └── web.xml
o classes -> .class ファイルを配置するディレクトリ
o lib -> Web アプリケーションから利用されるライブラリを配置するディレクトリ
o page -> .html や .jsp ファイルを配置するディレクトリ
o src -> .java ファイルを配置するディレクトリ
やることは、
1. Javac タスクで src 配下のソースコードをコンパイルする。Tomcat のライブラリ使うので path 要素を使ってクラスパスが設定できるようにしておく。
・Javac Task
< http://ant.apache.org/manual/Tasks/javac.html >
・Writing a Simple Buildfile
< http://ant.apache.org/manual/using.html >
2. WAR タスクで .war ファイルを作成する。
・WAR Task
< https://ant.apache.org/manual/Tasks/war.html >
上記 1、2 をやる build.xml は以下になります。
<?xml version="1.0" encoding="ISO-8859-1"?> <project name="testApp" basedir="testApp"> <property name="src" value="src"/> <property name="classes" value="classes"/> <property name="page" value="page"/> <property name="lib" value="lib"/> <property name="tomcat_lib" value="/usr/share/tomcat7/lib"/> <path id="tomcat_lib"> <fileset dir="${tomcat_lib}"> <include name="*.jar"/> </fileset> </path> <target name="compile"> <javac srcdir="${src}" destdir="${classes}" classpathref="tomcat_lib" /> </target> <target name="war" depends="compile"> <war destfile="testApp.war" webxml="web.xml"> <classes dir="${classes}"/> <lib dir="${lib}"/> <fileset dir="${page}" includes="**"/> </war> </target> </project>
■ 実行
ant -f build.xml war
■ 作成された .war ファイルの中身
jar tf testApp/testApp.war META-INF/ META-INF/MANIFEST.MF WEB-INF/ WEB-INF/web.xml WEB-INF/classes/ WEB-INF/classes/test/ WEB-INF/classes/test/hello/ WEB-INF/classes/test/hello/HelloServlet.class WEB-INF/lib/ WEB-INF/lib/test.jar jsp/ index.html jsp/test.jsp
ひとまず、ちゃんとできてそうかな。以上です。
[環境情報]
Ubuntu 14.04
Ant 1.9.3
OpenJDK 1.7.0_65