1. How to build project from another build.
<target name="project2"
description="Builds project2 project, required depedency">
<!-- Build project2 first -->
<subant target="dist" verbose="yes" inheritall="false">
<filelist dir="../com.waheed.project2"
files="build.xml" />
</subant>
</target>
2. How to read SVN revision and write into some file
<loadfile property="revision" srcFile="./.svn/entries">
<filterchain>
<headfilter skip="3" lines="1"/>
</filterchain>
</loadfile>
<tstamp>
<format property="date" pattern="dd/MM/yyyy hh:mm:ss" />
</tstamp>
<echo append="true" file="<FILE_NAME>" >revision=${revision}${line.separator}</echo>
3. How to generate Keystore
<target name="keystore">
<delete file="workdir/keystore" failonerror="false"/>
<genkey keystore="./keystore"
alias="jetty"
storepass="password"
keypass="password"
keyalg="RSA"
validity="10">
<dname>
<param name="CN" value="NAME" />
<param name="OU" value="NAME_OF_ORGANIZATION_UNIT" />
<param name="O" value="ORGANIZATION_NAME" />
<param name="C" value="COUNTRY_NAME" />
</dname>
</genkey>
</target>
4. How to get current time
<target name="time"><tstamp>
<format property="build-time" pattern="yyyy-MM-dd-HH-mm" />
</tstamp>
<echo>${build-start-time}</echo>
</target>
5 . How to create jar with manifest
<jar jarfile="${dist}/name_of_jar.jar"
basedir="${build}">
<manifest>
<!-- Who is building this jar? -->
<attribute name="Built-By" value="${user.name}" />
<!-- Information about the program itself -->
<attribute name="Implementation-Vendor"
value="Implementation-Vendor" />
<attribute name="Implementation-Title"
value="Implementation-Title" />
<attribute name="Implementation-Version" value="1.0" />
<!-- details -->
<section name="PATH_TO_MAIN_CLASS">
<attribute name="Sealed" value="false" />
</section>
</manifest>
</jar>
6. How to compile source
<!-- Compile the java code from ${src} into ${build} -->
<javac destdir="bin" debug="true">
<src path="src" />
<classpath>
<pathelement location="../dependency/bin" />
<fileset dir="../lib">
<include name="*.jar" />
</fileset>
</classpath>
</javac>
7. How to compile source with dependency class path
<path id="class.path">
<fileset dir="../lib/folder1">
<include name="*.jar" />
</fileset>
<fileset dir="../lib/folder2">
<include name="*.jar" />
</fileset>
</path>
<!-- Compile the java code from ${src} into ${build} -->
<javac destdir="bin" debug="true">
<src path="src" />
<classpath refid="class.path" />
</javac>
8. How to build Zip file
<property name="product.name" value="product1" />
<property name="product.version" value="1.0" />
<zip basedir="${dist}" destfile="${dist}/${product.name}-${product.version}.zip">
</zip>
9. How to build tar file
<property name="product.name" value="product1" />
<property name="product.version" value="1.0" />
<property name="product.version" value="1.0" />
<exec executable="tar" dir="${dist}">
<arg value="czf" />
<arg value="${dist}/${product.name}-${product.version}.tgz" />
<arg value="." />
</exec>
<arg value="czf" />
<arg value="${dist}/${product.name}-${product.version}.tgz" />
<arg value="." />
</exec>
10 . How to check OS
<condition property="isWindows">
<os family="windows" />
</condition>
<condition property="isUnix">
<os family="unix" />
</condition>
<target name="dist.windows" if="isWindows" depends="a">
<!-- Task to be done-- >
</target>
<target name="dist.unix" if="isUnix" depends="b">
<!-- Task to be done-- >
</target>
11. How to set permission to file
<chmod perm="500">
<fileset dir="${dist}">
<include name="**/*.sh" />
<include name="jsvc" />
</fileset>
</chmod>
12 .How to read property file
Suppose I have following data in my filename1.properties file and want to read it and write it to another file lets say name filename2.properties.
filename1.properties
REVISION 777
<property file="${dist}/filename1.properties" prefix="version"/>
<echo file="${dist}/filename2.properties" append="true">revision ${version.REVISION}${line.separator}</echo>