StrutsのWEBアプリ用 build.xml テンプレート

ま、今は、Mavenとか使ってますが、おさらいとして。

構成が、こんなんだったとしての話。

まず、build.properties

APNAME=STRUTS_APP
VERSION=1.0
PACKAGE=jp.co.xxx.xxx.*
ENCODING=MS932
COPYRIGHT=Copyright (C) 2007 xxx, All Rights Reserved.

んで、build.xml

<?xml version="1.0" encoding="Shift_JIS" ?>

<project name="Build Servlet And JSP Project" default="all" basedir=".">

	<!-- プロパティ設定 -->
	<property file="build.properties" />

	<property name="source"		value="./WEB-INF/src" />
	<property name="classes"	value="./WEB-INF/classes" />
	<property name="lib"		value="./WEB-INF/lib" />
	<property name="htdocs"		value="./htdocs" />
	<property name="jsp"		value="./jsp" />
	<property name="build"		value="./build/STRUTS_APP" />
	<property name="javadoc"	value="./javadoc" />

	<target name="all" depends="clean,init,compile,copy,war" />

	<!-- 環境変数設定 -->
	<property environment="env"/>

	<!-- クラスパス設定 -->
	<path id="project.classpath">
		<fileset dir="${lib}">
			<include name="*.jar" />
		</fileset>
		<fileset dir="${env.CATALINA_HOME}/common/lib">
			<include name="*.jar" />
		</fileset>
	</path>


	<!-- 初期化 -->
	<target name="init">
		<mkdir dir="${build}" />
		<mkdir dir="${build}/WEB-INF" />
		<mkdir dir="${build}/WEB-INF/classes" />
		<mkdir dir="${build}/WEB-INF/lib" />
		<copy todir="${build}/WEB-INF">
			<fileset dir="WEB-INF">
				<include name="*.xml" />
				<include name="*.tld" />
			</fileset>
		</copy>
		<copy todir="${build}/WEB-INF/lib">
			<fileset dir="${lib}">
				<include name="*.jar" />
			</fileset>
		</copy>
	</target>

	<!-- コンパイル -->
	<target name="compile">
		<javac srcdir="${source}" 
			destdir="${build}/WEB-INF/classes"
			fork="true" 
			encoding="${ENCODING}"
			debug="on" optimize="off" deprecation="off">
			<classpath refid="project.classpath"/>
		</javac>
	</target>

	<!-- コピー -->
	<target name="copy">
		<copy todir="${build}/htdocs">
			<fileset dir="${htdocs}">
			</fileset>
		</copy>
		<copy todir="${build}/jsp">
			<fileset dir="${jsp}">
			</fileset>
		</copy>
		<copy file="${classes}/log4j.xml" tofile="${build}/WEB-INF/classes/log4j.xml" />
		<copy file="${classes}/application.properties" tofile="${build}/WEB-INF/classes/application.properties" />
	</target>

	<!-- WAR作成  -->
	<target name="war">
		<jar jarfile="./${APNAME}.war" basedir="${build}">
		</jar>
	</target>

	<!-- JavaDoc作成 -->
	<target name="javadoc">
		<delete dir="${javadoc}" />
		<mkdir dir="${build}/javadoc" />
		<javadoc sourcepath="${source}"
			destdir="${build}/javadoc"
			Encoding="${ENCODING}"
			docencoding="${ENCODING}"
			charset="Shift_JIS"
			packagenames="${PACKAGE}"
			author="true"
			version="true"
			use="true"
			private="false"
			windowtitle="${APNAME} ${VERSION}"
			doctitle="${APNAME} ${VERSION}&lt;br&gt;API Specification"
			Header="${APNAME}&lt;br&gt;${VERSION}"
			Footer="${APNAME}&lt;br&gt;${VERSION}"
			bottom="${COPYRIGHT}"
			additionalparam="-J-Xmx256m">
			<classpath refid="project.classpath" />
		</javadoc>
	</target>

	<!-- 削除 -->
	<target name="clean">
		<delete dir="${build}" />
	</target>
</project>