Wednesday, August 29, 2012

Some ANT task

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" />

<exec executable="tar" dir="${dist}">
            <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>