blob: 962c07ab2a09cfc5ac8ab31b6703b8531687771f [file] [log] [blame]
<project name="Struts Web Applications" default="compile" basedir=".">
<!--
This is a build file that creates all of the web applications included
in a Struts distribution, using the generic "build-webapp.xml" script
for the details
-->
<!-- ========== Prerequisite Properties =================================== -->
<!--
These properties MUST be set on the "ant" command line, the "antrc"
properties file in your home directory, or from settings in a superior
build.xml script.
build.home Base directory into which we are building
the Struts components.
compile.classpath If specified, contains a set of JAR files
and/or directories to be added to the
compilation classpath.
servlet.jar The pathname of the servlet API classes
that you wish to compile against.
struts.libs The directory containing struts.jar and
the associated TLD files.
webapp.libs If specified, must be the pathname of a
directory from which all available
"*.jar" files are copied to the web
application's WEB-INF/lib directory.
-->
<property name="build.home" value="${basedir}/target"/>
<property name="servlet.jar" value="../jakarta-servletapi/lib/servlet.jar"/>
<property name="struts.libs" value="${build.home}/library"/>
<!-- ========== Initialization Properties ================================= -->
<!--
These property values may optionally be overridden with property
settings from an "ant" command line, the "antrc" properties file
in your home directory, or from settings in a superior build.xml
script.
-->
<!-- Should Java compilations set the debug compiler option? -->
<property name="compile.debug" value="true" />
<!-- Should Java compilations set the deprecation compiler option? -->
<property name="compile.deprecation" value="false" />
<!-- Should Java compilations set the optimize compiler option? -->
<property name="compile.optimize" value="true" />
<!-- The base directory for distribution targets -->
<property name="dist.home" value="${basedir}/dist" />
<!-- The directory into which Struts JAR and TLD files have been created -->
<property name="struts.home" value="${build.home}/library" />
<!-- Directory where core struts library configurations files are stored -->
<property name="conf.share.dir" value="${basedir}/conf/share"/>
<!-- Doc directory -->
<property name="doc.dir" value="doc"/>
<!-- ========== Executable Targets ======================================== -->
<!--
The "static.generic" target causes the "static" target of each
individual web application to be executed.
-->
<target name="static.generic">
<ant antfile="build-webapp.xml" target="static">
<property name="webapp.name" value="blank"/>
</ant>
<ant antfile="build-webapp.xml" target="static">
<property name="webapp.name" value="documentation"/>
</ant>
<ant antfile="build-webapp.xml" target="static">
<property name="webapp.name" value="example"/>
</ant>
<ant antfile="build-webapp.xml" target="static">
<property name="webapp.name" value="examples"/>
</ant>
<ant antfile="build-webapp.xml" target="static">
<property name="webapp.name" value="tiles-documentation"/>
</ant>
<!--ant antfile="build-webapp.xml" target="static">
<property name="webapp.name" value="test"/>
</ant-->
</target>
<!--
The "static" target causes non-generic static activity required
for specific tag libraries to be executed.
-->
<target name="static" depends="static.generic"
description="Copy static resources for individual web applications">
<!-- Copy DTDs for Struts constructs -->
<copy todir="${build.home}/documentation/dtds">
<fileset dir="${conf.share.dir}" includes="**/*.dtd"/>
</copy>
<!-- Copy required image for the Struts example application -->
<copy tofile="${build.home}/example/struts-power.gif"
file="${doc.dir}/images/struts-power.gif"/>
<!-- Copy validator-rules.xml for the Struts example application -->
<copy tofile="${build.home}/example/WEB-INF/validator-rules.xml"
file="${basedir}/conf/share/validator-rules.xml"/>
<!-- Copy validator-rules.xml for the Struts blank application -->
<copy tofile="${build.home}/blank/WEB-INF/validator-rules.xml"
file="${basedir}/conf/share/validator-rules.xml"/>
<!-- Copy validator-rules.xml for the Struts examples application -->
<copy tofile="${build.home}/examples/WEB-INF/validator-rules.xml"
file="${basedir}/conf/share/validator-rules.xml"/>
<!-- Copy required image for the Struts examples exercise module -->
<copy tofile="${build.home}/examples/exercise/struts-power.gif"
file="${doc.dir}/images/struts-power.gif"/>
<!-- Copy required image for the Struts examples validator module -->
<copy tofile="${build.home}/examples/validator/struts-power.gif"
file="${doc.dir}/images/struts-power.gif"/>
<copy todir="${build.home}/blank/WEB-INF/classes"
file="${basedir}/web/blank/WEB-INF/src/java/MessageResources.properties"/>
</target>
<!--
The "compile.generic" target causes the "compile" target of each
individual web application to be executed.
-->
<target name="compile.generic">
<ant antfile="build-webapp.xml" target="compile">
<property name="webapp.name" value="blank"/>
</ant>
<ant antfile="build-webapp.xml" target="compile">
<property name="webapp.name" value="documentation"/>
</ant>
<ant antfile="build-webapp.xml" target="compile">
<property name="webapp.name" value="example"/>
</ant>
<ant antfile="build-webapp.xml" target="compile">
<property name="webapp.name" value="examples"/>
</ant>
<ant antfile="build-webapp.xml" target="compile">
<property name="webapp.name" value="tiles-documentation"/>
</ant>
<!--ant antfile="build-webapp.xml" target="compile">
<property name="webapp.name" value="test"/>
</ant-->
</target>
<!--
The "compile" target causes non-generic compile activity required
for specific tag libraries to be executed.
-->
<target name="compile" depends="compile.generic,compile.docs, validate.docs"
description="Compile individual web applications">
<!-- Create the Tiles documentation -->
<style basedir="${doc.dir}/tiles"
destdir="${build.home}/tiles-documentation"
extension=".html" style="${doc.dir}/stylesheets/struts.xsl"
includes="*.xml"
excludes="project.xml">
<param name="relative-path" expression="."/>
<param name="project-path" expression="../tiles/project.xml"/>
</style>
<!-- Copy the tiles documentation files -->
<copy todir="${build.home}/tiles-documentation">
<fileset dir="${doc.dir}">
<include name="*.css"/>
<include name="images/*.gif"/>
<include name="images/*.jpg"/>
</fileset>
</copy>
<!-- Validate tiles docs -->
<xmlvalidate warn="yes" failonerror="yes" lenient="no">
<fileset dir="${build.home}/tiles-documentation" includes="**/*.html"/>
<!-- Reference local DTDS to avoid network lookup -->
<dtd publicId="-//W3C//DTD XHTML 1.0 Strict//EN"
location="${doc.dir}/dtds/xhtml1-strict.dtd"/>
<dtd publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
location="${doc.dir}/dtds/xhtml1-transitional.dtd"/>
</xmlvalidate>
</target>
<!--
The "compile.docs" target transforms the documentation using XSLT
-->
<target name="compile.docs"
description="Perform XSLT transformations">
<!-- Create the taglib documentation -->
<style basedir="${doc.dir}" destdir="${build.home}/documentation"
extension=".html" style="${doc.dir}/stylesheets/struts.xsl"
includes="*.xml"
excludes="project.xml"
reloadstylesheet="true">
<param name="relative-path" expression="."/>
</style>
<!-- Create the FAQs -->
<style basedir="${doc.dir}/faqs"
destdir="${build.home}/documentation/faqs"
extension=".html" style="${doc.dir}/stylesheets/struts.xsl"
includes="*.xml"
excludes="project.xml"
reloadstylesheet="true">
<param name="project-path" expression="../faqs/project.xml"/>
</style>
<!-- Create the proposals -->
<style basedir="${doc.dir}/proposals"
destdir="${build.home}/documentation/proposals"
extension=".html" style="${doc.dir}/stylesheets/struts.xsl"
includes="*.xml"
excludes="project.xml"
reloadstylesheet="true">
<param name="project-path" expression="../proposals/project.xml"/>
</style>
<!-- Create the user guide -->
<style basedir="${doc.dir}/userGuide"
destdir="${build.home}/documentation/userGuide"
extension=".html" style="${doc.dir}/stylesheets/struts.xsl"
includes="*.xml"
excludes="project.xml"
reloadstylesheet="true">
<param name="project-path" expression="../userGuide/project.xml"/>
</style>
<!-- Copy the basic documentation files -->
<copy todir="${build.home}/documentation">
<fileset dir="${doc.dir}">
<include name="**/*.cgi"/>
<include name="**/*.css"/>
<include name="**/*.gif"/>
<include name="**/*.html"/>
<include name="**/*.jpg"/>
<include name="**/*.js"/>
</fileset>
</copy>
<!-- Copy the basic user guide files -->
<copy todir="${build.home}/documentation/userGuide">
<fileset dir="${doc.dir}/userGuide">
<include name="**/*.css"/>
<include name="**/*.gif"/>
<include name="**/*.html"/>
<include name="**/*.jpg"/>
<include name="**/*.js"/>
</fileset>
</copy>
<!-- Copy the proposal files -->
<copy todir="${build.home}/documentation/proposals">
<fileset dir="${doc.dir}/proposals">
<include name="**/*.css"/>
<include name="**/*.gif"/>
<include name="**/*.html"/>
<include name="**/*.jpg"/>
<include name="**/*.js"/>
</fileset>
</copy>
<!-- Copy the FAQ files -->
<copy todir="${build.home}/documentation/faqs">
<fileset dir="${doc.dir}/faqs">
<include name="**/*.zip"/>
</fileset>
</copy>
</target>
<!--
The "validate.docs" target validates the generated XHTML
documentation against the DTDs
-->
<target name="validate.docs" description="Validate generated XHTML documents">
<xmlvalidate warn="yes" failonerror="yes" lenient="no">
<fileset dir="${build.home}/documentation">
<include name="**/*.html"/>
<exclude name="download.html"/>
<exclude name="api/**"/>
</fileset>
<!-- Reference local DTDS to avoid network lookup -->
<dtd publicId="-//W3C//DTD XHTML 1.0 Strict//EN"
location="${doc.dir}/dtds/xhtml1-strict.dtd"/>
<dtd publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
location="${doc.dir}/dtds/xhtml1-transitional.dtd"/>
</xmlvalidate>
</target>
<!--
The "dist.generic" target causes the "dist" target of each
individual web application to be executed.
-->
<target name="dist.generic">
<ant antfile="build-webapp.xml" target="dist">
<property name="webapp.name" value="blank"/>
<property name="webapp.war" value="struts-blank.war"/>
</ant>
<ant antfile="build-webapp.xml" target="dist">
<property name="webapp.name" value="documentation"/>
<property name="webapp.war" value="struts-documentation.war"/>
</ant>
<ant antfile="build-webapp.xml" target="dist">
<property name="webapp.name" value="example"/>
<property name="webapp.war" value="struts-mailreader.war"/>
</ant>
<ant antfile="build-webapp.xml" target="dist">
<property name="webapp.name" value="examples"/>
<property name="webapp.war" value="struts-examples.war"/>
</ant>
<ant antfile="build-webapp.xml" target="dist">
<property name="webapp.name" value="tiles-documentation"/>
<property name="webapp.war" value="tiles-documentation.war"/>
</ant>
<!--ant antfile="build-webapp.xml" target="dist">
<property name="webapp.name" value="test"/>
<property name="webapp.war" value="struts-test.war"/>
</ant-->
</target>
<!--
The "dist" target causes non-generic dist activity required
for specific tag libraries to be executed.
-->
<target name="dist" depends="dist.generic"
description="Create distribution output of web applications">
<!-- Compile Tiles dist -->
<!--
<ant antFile="build.xml" dir="contrib/tiles" target="dist.for.struts">
<property name="struts.home" value="${struts.home}"/>
<property name="struts.libs" value="${struts.libs}"/>
<property name="build.home" value="${build.home}/tiles"/>
<property name="dist.home" value="${dist.home}"/>
<property name="app.name" value="tiles"/>
<property name="project.name" value="Tiles"/>
</ant>
-->
</target>
<!--
The "clean.generic" target causes the "clean" target of each
individual web application to be executed.
-->
<target name="clean.generic">
<ant antfile="build-webapp.xml" target="clean">
<property name="webapp.name" value="blank"/>
</ant>
<ant antfile="build-webapp.xml" target="clean">
<property name="webapp.name" value="documentation"/>
</ant>
<ant antfile="build-webapp.xml" target="clean">
<property name="webapp.name" value="example"/>
</ant>
<ant antfile="build-webapp.xml" target="clean">
<property name="webapp.name" value="examples"/>
</ant>
<ant antfile="build-webapp.xml" target="clean">
<property name="webapp.name" value="tiles-documentation"/>
</ant>
<!--ant antfile="build-webapp.xml" target="clean">
<property name="webapp.name" value="test"/>
</ant-->
</target>
<!--
The "clean" target causes non-generic clean activity required
for specific tag libraries to be executed.
-->
<target name="clean" depends="clean.generic"
description="Clean output for individual web applications">
</target>
</project>