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>