237 lines
8.9 KiB
XML
237 lines
8.9 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
=======================================================================
|
|
A master build file for creating a release of Spring Web Flow
|
|
=======================================================================
|
|
-->
|
|
<project name="build-spring-webflow" default="release" xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
|
|
|
|
<!-- Load local and user build preferences -->
|
|
<property file="build.properties" />
|
|
<property file="project.properties" />
|
|
<property file="${user.home}/build.properties" />
|
|
|
|
<!-- Try to load ivy here from local lib dir, in case the user has not already dropped
|
|
it into ant's lib dir (note that the latter copy will always take precedence).
|
|
We will not fail as long as local lib dir exists (it may be empty) and
|
|
ivy is in at least one of ant's lib dir or the local lib dir. -->
|
|
<path id="ivy.lib.path">
|
|
<fileset dir="${common.build.dir}/lib" includes="*.jar" />
|
|
</path>
|
|
|
|
<taskdef resource="fr/jayasoft/ivy/ant/antlib.xml" uri="antlib:fr.jayasoft.ivy.ant" classpathref="ivy.lib.path" />
|
|
|
|
<!-- simplistic pattern for zipping up sources -->
|
|
<selector id="project.source.zip.includes">
|
|
<or>
|
|
<filename name="common-build/**" />
|
|
<filename name="readme.txt" />
|
|
<filename name="webflow-architecture.xml" />
|
|
<filename name="webflow-workspace.xml" />
|
|
<and>
|
|
<or>
|
|
<filename name="build-spring-webflow/**" />
|
|
<filename name="spring-binding/**" />
|
|
<filename name="spring-webflow/**" />
|
|
<filename name="spring-webflow-samples/**" />
|
|
</or>
|
|
<and>
|
|
<!-- exclude core project derived artifacts -->
|
|
<filename name="*/docs/reference/lib/**" negate="true"/>
|
|
<filename name="*/docs/reference/target/**" negate="true"/>
|
|
<filename name="*/target/**" negate="true" />
|
|
<filename name="*/build.properties" negate="true" />
|
|
<filename name="*/lib/**" negate="true" />
|
|
</and>
|
|
<and>
|
|
<!-- exclude sample project derived artifacts -->
|
|
<filename name="*/*/docs/refrence/lib/**" negate="true"/>
|
|
<filename name="*/*/docs/refrence/target/**" negate="true"/>
|
|
<filename name="*/*/target/**" negate="true" />
|
|
<filename name="*/*/build.properties" negate="true" />
|
|
<filename name="*/*/lib/**" negate="true" />
|
|
</and>
|
|
</and>
|
|
</or>
|
|
</selector>
|
|
|
|
<!--
|
|
targets: displays all targets suitable for developer use
|
|
-->
|
|
<target name="targets">
|
|
<echo>
|
|
Master build for Spring Web Flow and Spring Web Flow samples.
|
|
|
|
Please execute
|
|
ant -p
|
|
|
|
to see a list of all relevant targets.
|
|
</echo>
|
|
</target>
|
|
|
|
<!--
|
|
init: initializes some common settings
|
|
-->
|
|
<target name="init" unless="init.done" depends="init.pre, init.post" />
|
|
|
|
<target name="init.pre">
|
|
|
|
<!-- ivy will determine the right order to build web flow main and samples -->
|
|
|
|
<property name="ivy.conf.dir" value="${common.build.dir}" />
|
|
|
|
<ivy:configure file="${ivy.conf.dir}/ivyconf.xml" />
|
|
|
|
<ivy:buildlist reference="modules">
|
|
<fileset dir="..">
|
|
<include name="spring-binding/build.xml" />
|
|
<include name="spring-webflow/build.xml" />
|
|
<include name="spring-webflow-samples/*/build.xml" />
|
|
</fileset>
|
|
</ivy:buildlist>
|
|
|
|
<tstamp>
|
|
<format property="internal.build.timestamp" pattern="yyyyMMddHHmmss" />
|
|
</tstamp>
|
|
<tstamp>
|
|
<format property="TSTAMPCOL" pattern="hh:mm" />
|
|
</tstamp>
|
|
|
|
<!-- default the release version (used in release archive zips) to the current timestamp -->
|
|
<property name="release.version" value="${internal.build.timestamp}" />
|
|
|
|
<!-- root of build hierarchy -->
|
|
<property name="target.dir" value="${basedir}/target" />
|
|
|
|
<!-- directory for release zips -->
|
|
<property name="target.release.dir" value="${target.dir}/release" />
|
|
|
|
<!-- directory for release zips -->
|
|
<property name="zip.toplevel.dir" value="spring-webflow-${release.version}" />
|
|
<property name="release.zip" value="spring-webflow-${release.version}.zip" />
|
|
|
|
<echo message='user.dir = "${user.dir}"' />
|
|
<echo message='ant.file = "${ant.file}"' />
|
|
<echo message='ant.java.version = "${ant.java.version}"' />
|
|
<echo message='release.version = "${release.version}"' />
|
|
|
|
</target>
|
|
|
|
<target name="init.post">
|
|
<property name="projects" value="modules" />
|
|
<property name="projects.names" refid="modules" />
|
|
<property name="init.done" value="true" />
|
|
</target>
|
|
|
|
<target name="clean" depends="init" description="Cleans all build output files from all projects">
|
|
<delete dir="${target.dir}" />
|
|
<echo>projects=${projects}</echo>
|
|
<echo>projects.names=${projects.names}</echo>
|
|
<subant target="clean" inheritall="false">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="clean-all" depends="init" description="Cleans all build output files from all projects, and also retrieved libs">
|
|
<delete dir="${target.dir}" />
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="clean-all" inheritall="false">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="retrieve" depends="init" description="Does a retrieve in all projects">
|
|
<delete dir="${target.dir}" />
|
|
<echo>projects=${projects}</echo>
|
|
<echo>projects.names=${projects.names}</echo>
|
|
<subant target="retrieve" inheritall="false">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="publish" depends="init" description="Calls publish targets on each project">
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="publish" inheritall="false">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="dist" depends="init" description="Calls dist targets on each project">
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="dist" inheritall="false">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="build-release-repo" depends="init"
|
|
description="Builds repo of all dependencies for all projects">
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="retrieve-to-repo" inheritall="false">
|
|
<property name="retrieve.to.repo.dir" value="${target.dir}/repo" />
|
|
<property name="retrieve.to.repo.pattern"
|
|
value="${release.repo.ivy.retrieve.pattern}" />
|
|
<property name="retrieve.to.repo.pattern.ivy"
|
|
value="${release.repo.ivy.retrieve.ivy.pattern}" />
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="tests" depends="init" description="Calls test targets on each project">
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="tests" inheritall="false">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="javadoc" depends="init" description="Calls javadoc targets on each project">
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="javadoc" inheritall="false" failonerror="no">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="doc" depends="init" description="Calls doc targets on applicable projects">
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="doc-all" inheritall="false" failonerror="false">
|
|
<buildpathelement location="../spring-webflow" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="tomcat-copy-war" depends="init" description="Copies all war to tomcat webapp dir">
|
|
<echo>projects=${projects}</echo>
|
|
<subant target="tomcat-copy-war" inheritall="false" failonerror="no">
|
|
<buildpath refid="${projects}" />
|
|
</subant>
|
|
</target>
|
|
|
|
<target name="release" depends="dist, build-release-repo, javadoc, doc, gen.release.zip"
|
|
description="Generate the spring-webflow release archive" />
|
|
|
|
<target name="gen.release.zip" depends="init">
|
|
<mkdir dir="${target.release.dir}" />
|
|
<delete file="${target.release.dir}/${release.zip}" />
|
|
|
|
<zip zipfile="${target.release.dir}/${release.zip}">
|
|
<!-- important readme, license, and other text files -->
|
|
<zipfileset file="../spring-webflow/*.txt" prefix="${zip.toplevel.dir}" />
|
|
<!-- binary files -->
|
|
<zipfileset dir="../spring-binding/target/dist/jars" prefix="${zip.toplevel.dir}" />
|
|
<zipfileset dir="../spring-binding/target/dist/ivys" prefix="${zip.toplevel.dir}/ivys" />
|
|
<zipfileset dir="../spring-binding/target/javadocs" prefix="${zip.toplevel.dir}/docs/api-binding" />
|
|
<zipfileset dir="../spring-webflow/target/dist/jars" prefix="${zip.toplevel.dir}" />
|
|
<zipfileset dir="../spring-webflow/target/dist/ivys" prefix="${zip.toplevel.dir}/ivys" />
|
|
<zipfileset dir="../spring-webflow/target/javadocs" prefix="${zip.toplevel.dir}/docs/api" />
|
|
<zipfileset dir="../spring-webflow/docs/reference/target" prefix="${zip.toplevel.dir}/docs/reference">
|
|
<exclude name="**/html_single/**" />
|
|
<exclude name="**/pdf/images/**" />
|
|
</zipfileset>
|
|
<zipfileset dir="../spring-webflow/docs" includes="upgrade-guide.pdf" prefix="${zip.toplevel.dir}/docs" />
|
|
<zipfileset dir="${target.dir}/repo" prefix="${zip.toplevel.dir}/projects/repository" />
|
|
<!-- project sources -->
|
|
<zipfileset dir=".." prefix="${zip.toplevel.dir}/projects">
|
|
<selector refid="project.source.zip.includes" />
|
|
</zipfileset>
|
|
</zip>
|
|
</target>
|
|
|
|
</project> |