Print service provided by iDogiCat: http://www.idogicat.com/
home logo





Home > IT > Programming > Java > Ant Quick Guide

iDog's Ant Quick Guide

iDog

It's too simple to explain in words. Just use an example to demonstrate the usage of it.



<?xml version="1.0" encoding="utf-8"?>
<project name="MyProj" default="all" basedir="." >
    <!-- define dirs -->
    <property name="java_src_dir" location="src"/>
    <property name="cpp_header_dir" location="csrc/include"/>
    <property name="bin_dir" location="bin"/>
    <property name="build_dir" location="build"/>
    <property name="cls_dir" location="${build_dir}/classes"/>

    <!-- define files -->
    <property name="jar_name" value="my_lib.jar"/>
    <property name="main_class_name" value="com.idogicat.testprj.Main"/>
    <property name="header_file_name" value="MyJniProxy.h"/>

    <target name="init">
        <tstamp/>
    </target>

    <target name="compile-java" depends="init" description="compile Java files.">
        <mkdir dir="${bin_dir}" />
        <mkdir dir="${build_dir}" />
        <mkdir dir="${cls_dir}" />
        <javac srcdir="${java_src_dir}" destdir="${cls_dir}" />
     </target>

    <target name="build-jar" depends="compile-java" description="build jar files.">
        <jar basedir="${cls_dir}" destfile="${bin_dir}/${jar_name}">
            <manifest>
                <attribute name="Built-By" value="${user.name}" />
                <!-- we need following line for a standalone application -->
                <attribute name="Main-Class" value="${main_class_name}" />
            </manifest>
        </jar>
     </target>

    <!-- demonstrate generation of C++ header in JNI projects -->
    <target name="generate-header-files" depends="compile-java" 
            description="generate C++ header files.">
        <javah classpath="${cls_dir}" outputfile="${cpp_header_dir}/${header_file_name}">
            <class name="com.idogicat.testprj.MyJniProxy"/>
        </javah>
    </target>

    <target name="clean" description="delete all generated files">
        <delete file="${cpp_header_dir}/${header_file_name}"/>
        <delete dir="${cls_dir}"/>
        <delete file="${bin_dir}/${jar_name}"/>
    </target>

    <target name="all" depends="build-jar, generate-header-files" description="all targets">
    </target>
</project>