2012年10月14日日曜日

【Ant】Wicketプロジェクトからwarファイルを作成するbuild.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<project name="war_test" default="create_run_war" basedir=".">

 <property name="app" value="war_test" />
 <property name="dir.src" value="WEB-INF/src" />
 <property name="dir.lib" value="WEB-INF/lib" />
 <property name="dir.dest" value="WEB-INF/classes" />
 <property name="javac" value="C:/user/java/6/bin/javac" />

 <path id="classpath.war_test">
  <fileset dir="${dir.lib}" includes="*.jar" />
 </path>

 <target name="clean_war">
  <echo message="warファイルを削除します。" />
  <delete file="${app}.war" />
 </target>

 <target name="clean_folder" depends="clean_war">
  <echo message="ビルドに必要なフォルダを削除します。" />
  <delete dir="WEB-INF/classes" />
 </target>

 <target name="create_folder" depends="clean_folder">
  <echo message="ビルドに必要なフォルダを作成します。" />
  <mkdir dir="WEB-INF/classes" />
 </target>

 <target name="copy_resource" depends="create_folder">
  <echo message="リソースファイルをコピーします。" />
  <copy includeemptydirs="false" todir="${dir.dest}">
   <fileset dir="${dir.src}/resource" />
  </copy>
  <copy includeemptydirs="false" todir="${dir.dest}">
   <fileset dir="${dir.src}">
    <include name="**/*.html" />
   </fileset>
  </copy>
 </target>

 <target name="compile" depends="copy_resource">
  <echo message="ソースコードコンパイルします。" />
  <javac srcdir="${dir.src}" destdir="${dir.dest}" executable="${javac}" debug="on" debuglevel="lines,vars,source" optimize="off" deprecation="on" encoding="UTF-8" includeAntRuntime="off">
   <exclude name="resource/" />
   <classpath refid="classpath.war_test" />
  </javac>
 </target>

 <target name="create_run_war" depends="compile">
  <echo message="warファイルを作成します。" />
  <war destfile="${app}.war" webxml="WEB-INF/web.xml">
   <fileset dir="" excludes="**/web.xml" />
  </war>
 </target>

</project>

ポイントはHTMLやらプロパティやらをコピーするところとWEB-INF/classes配下にclassファイルを配置するところでしょうか
前回にwarファイルを作成するbuild.xmlを紹介したのですが、実はあれだけだと本当にwarしかできなく動作しないので、注意してくださいw
Javaのパスは適宜変更して使用してください

0 件のコメント:

コメントを投稿