We are to a point now where we can delete the 'clean' task in favor of 'svn'
Also, we'll add a version designation to jar, war, and zip files.
In build.properties change the following:
#
jar.name = ${ant.project.name}.jar
jar.base.name = ${ant.project.name}
# package.name = ${ant.project.name}.zip
package.base.name = ${ant.project.name}
# webapp.name = ${ant.project.name}.war
war.base.name = ${ant.project.name}
jar.base.name = ${ant.project.name}
# package.name = ${ant.project.name}.zip
package.base.name = ${ant.project.name}
# webapp.name = ${ant.project.name}.war
war.base.name = ${ant.project.name}
In build.xml
<!-- delete clean target -->
<target name="svn"
[...]
<!--
<antcall target="clean"/>
-->
<delete dir="${dir.build}"/>
</target>
<target name="set.jar.name" depends="version" unless="jar.name">
<property name="jar.name" value="${jar.base.name}-${version}.jar"/>
</target>
<target name="set.war.name" depends="version" unless="war.name">
<property name="war.name" value="${war.base.name}-${version}.war"/>
</target>
<target name="set.package.name" depends="version" unless="package.name">
<property name="package.name" value="${package.base.name}-${version}.zip"/>
</target>
<target name="jar" depends="[...],set.jar.name">
[...]
</target>
<target name="zip" depends="[...],set.package.name" [...]>
[...]
</target>
<target name="all">
[...]
<antcall target="install"/>
</target>
<target name="inc.build.number" unless="already.inc.build.number">
[...]
<property name="already.inc.build.number" value="true"/>
</target>
<target name="version" description="print version information">
[...]
<property file="${build.version.file}"/>
<!-- set version to current version -->
<property name="version" value="${build.major}.${build.minor}.${build.number}"/>
[...]
</target>
<target name="war" depends="[...],set.war.name" [...]>
[...]
* Creating deployable webapp ${war.name}
[...]
<war destfile="${dir.build.war}/${war.name}">
[...]
</target>
<target name="webapp" [...]>
<echo level="info">
***********************************************************************
*
* Assembling webapp ${war.base.name} to ${dir.build.webapp}
*
***********************************************************************
</echo>
[...]
</target>
<target name="install" [...]>
<echo level="info">
***********************************************************************
*
* Attempting to install ${war.name} to ${server.url}${webapp.path}
*
***********************************************************************
</echo>
[...]
<deploy [...]
war="${dir.build.war}/${war.name}"
[...] />
[...]
</target>
<target name="svn"
[...]
<!--
<antcall target="clean"/>
-->
<delete dir="${dir.build}"/>
</target>
<target name="set.jar.name" depends="version" unless="jar.name">
<property name="jar.name" value="${jar.base.name}-${version}.jar"/>
</target>
<target name="set.war.name" depends="version" unless="war.name">
<property name="war.name" value="${war.base.name}-${version}.war"/>
</target>
<target name="set.package.name" depends="version" unless="package.name">
<property name="package.name" value="${package.base.name}-${version}.zip"/>
</target>
<target name="jar" depends="[...],set.jar.name">
[...]
</target>
<target name="zip" depends="[...],set.package.name" [...]>
[...]
</target>
<target name="all">
[...]
<antcall target="install"/>
</target>
<target name="inc.build.number" unless="already.inc.build.number">
[...]
<property name="already.inc.build.number" value="true"/>
</target>
<target name="version" description="print version information">
[...]
<property file="${build.version.file}"/>
<!-- set version to current version -->
<property name="version" value="${build.major}.${build.minor}.${build.number}"/>
[...]
</target>
<target name="war" depends="[...],set.war.name" [...]>
[...]
* Creating deployable webapp ${war.name}
[...]
<war destfile="${dir.build.war}/${war.name}">
[...]
</target>
<target name="webapp" [...]>
<echo level="info">
***********************************************************************
*
* Assembling webapp ${war.base.name} to ${dir.build.webapp}
*
***********************************************************************
</echo>
[...]
</target>
<target name="install" [...]>
<echo level="info">
***********************************************************************
*
* Attempting to install ${war.name} to ${server.url}${webapp.path}
*
***********************************************************************
</echo>
[...]
<deploy [...]
war="${dir.build.war}/${war.name}"
[...] />
[...]
</target>
That's a lot of editing for not a lot of change. Now try the war, jar, and zip tasks
> ant jar war zip
Verify that the versions are appended to the filenames. If everything checks out, you know the drill
> ant svn inc.build.minor
commit
Descriptive Filenames