blob: 2e4b2fa73cee03179f61d2b58ea2150605076437 [file]
<project name="Struts" default="compile.library" basedir=".">
<!-- Initialization properties -->
<property name="app.name" value="struts"/>
<property name="build.home" value="../build/${app.name}"/>
<property name="deploy.home" value="../build/catalina/webapps/struts"/>
<property name="dist.home" value="../dist/${app.name}"/>
<!-- BUILD: Create directories and copy files for library -->
<target name="prepare.library">
<mkdir dir="${build.home}"/>
<mkdir dir="${build.home}/library"/>
<mkdir dir="${build.home}/library/classes"/>
</target>
<!-- BUILD: Create directories and copy files for documentation app -->
<target name="prepare.documentation">
<mkdir dir="${build.home}"/>
<mkdir dir="${build.home}/documentation"/>
<mkdir dir="${build.home}/documentation/WEB-INF"/>
<mkdir dir="${build.home}/documentation/WEB-INF/classes"/>
<mkdir dir="${build.home}/documentation/WEB-INF/lib"/>
<copydir src="web/documentation" dest="${build.home}/documentation"/>
</target>
<!-- BUILD: Create directories and copy files for example application -->
<target name="prepare.example">
<mkdir dir="${build.home}"/>
<mkdir dir="${build.home}/example"/>
<mkdir dir="${build.home}/example/WEB-INF"/>
<mkdir dir="${build.home}/example/WEB-INF/classes"/>
<mkdir dir="${build.home}/example/WEB-INF/lib"/>
<copydir src="web/example" dest="${build.home}/example"/>
</target>
<!-- DIST: Create directories and copy files for distribution -->
<target name="prepare.dist">
<mkdir dir="${dist.home}"/>
<mkdir dir="${dist.home}/etc"/>
<mkdir dir="${dist.home}/lib"/>
<mkdir dir="${dist.home}/src"/>
<mkdir dir="${dist.home}/web"/>
</target>
<!-- BUILD: Compile library directory components -->
<target name="compile.library" depends="prepare.library">
<javac srcdir="src/share" destdir="${build.home}/library/classes"
classpath="${servlet.jar}"
debug="true" optimize="false" deprecation="false"/>
<copydir src="src/conf" dest="${build.home}/library"/>
</target>
<!-- BUILD: Compile documentation application components -->
<target name="compile.documentation"
depends="compile.library,prepare.documentation">
<!--
<javac srcdir="src/documentation"
destdir="${build.home}/documentation/WEB-INF/classes"
classpath="${build.home}/library/classes:${servlet.jar}"
debug="true" optimize="false" deprecation="false"/>
-->
<copydir src="web/documentation" dest="${build.home}/documentation"/>
<copyfile src="${dist.home}/lib/${app.name}.jar"
dest="${build.home}/documentation/WEB-INF/lib/${app.name}.jar"/>
<copyfile src="${dist.home}/lib/${app.name}.tld"
dest="${build.home}/documentation/WEB-INF/${app.name}.tld"/>
</target>
<!-- BUILD: Compile example application components -->
<target name="compile.example"
depends="dist.library,prepare.example">
<javac srcdir="src/example"
destdir="${build.home}/example/WEB-INF/classes"
classpath="${build.home}/library/classes:${servlet.jar}"
debug="true" optimize="false" deprecation="false"/>
<copydir src="web/example" dest="${build.home}/example"/>
<copyfile src="${dist.home}/lib/${app.name}.jar"
dest="${build.home}/example/WEB-INF/lib/${app.name}.jar"/>
<copyfile src="${dist.home}/lib/${app.name}.tld"
dest="${build.home}/example/WEB-INF/${app.name}.tld"/>
</target>
<!-- DIST: Construct library distributables -->
<target name="dist.library" depends="prepare.dist,compile.library">
<copyfile src="${build.home}/library/${app.name}.tld"
dest="${dist.home}/lib/${app.name}.tld"/>
<jar jarfile="${dist.home}/lib/${app.name}.jar"
basedir="${build.home}/library/classes"/>
</target>
<!-- DIST: Construct documentation distributables -->
<target name="dist.documentation"
depends="dist.library,compile.documentation">
<jar jarfile="${dist.home}/lib/${app.name}-documentation.war"
basedir="${build.home}/documentation"/>
</target>
<!-- DIST: Construct example distributables -->
<target name="dist.example" depends="dist.library,compile.example">
<jar jarfile="${dist.home}/lib/${app.name}-example.war"
basedir="${build.home}/example"/>
</target>
<!-- DIST: Copy sources -->
<target name="dist.source" depends="prepare.dist">
<copydir src="." dest="${dist.home}/etc" includes="build.*"/>
<copyfile src="LICENSE" dest="${dist.home}/LICENSE"/>
<copyfile src="README" dest="${dist.home}/README"/>
<copyfile src="TODO" dest="${dist.home}/TODO"/>
<copydir src="src" dest="${dist.home}/src"/>
<copydir src="web" dest="${dist.home}/web"/>
</target>
<!-- DIST: Construct complete release distribution -->
<target name="dist"
depends="dist.library,dist.documentation,dist.example,dist.source"/>
<!-- DEPLOY: Deploy this application on Tomcat -->
<target name="deploy" depends="compile.example">
<mkdir dir="${deploy.home}"/>
<copydir src="${build.home}/example" dest="${deploy.home}"/>
</target>
<!-- UTILITY: Clean up build and distribution directories -->
<target name="clean">
<deltree dir="${build.home}"/>
<deltree dir="${dist.home}"/>
</target>
<!-- UTILITY: All-in-one build target -->
<target name="all"
depends="clean,compile.library,compile.documentation,compile.example"/>
</project>