自己的build.xml?
<?xml version="1.0" encoding="gb2312"?>
<project name="app" default="build" basedir=".">
?<property name="app.name" value="hello-ant"/>
??? ?<property name="app.jar" value="${app.name}.jar"/>
??? ?<property name="app.copyright" value=" Copyright (c) 2005 The Robbie's Software Foundation.? All rights reserved."/>
?<property name="src.dir" location="src"/>
?<property name="build.dir" location="build"/>
?<property name="build.docs" value="${build.dir}/docs"/>
?<property name="build.docs.api" value="${build.docs}/api"/>
?<property name="dist.dir" location="dist"/>
?<property name="lib.dir" location="lib"/>
?<property environment="env"/> <!--取系統環境變量-->
?
?<path id="myclasspath">
??<fileset dir="${lib.dir}">
???<include name="**/*.jar"/>
??</fileset>
??<fileset dir="${env.STRUTS_HOME}">
???<include name="lib/*.jar"/>
??</fileset>
<!--
pathelement只能添加單個的jar文件, 沒有fileset方便
??<pathelement path="${env.STRUTS_HOME}/lib/struts.jar"/>
-->??
?</path>
?
?<target name="init" depends="clean">
??<echo message="初始化..."/>
??<mkdir dir="${build.dir}"/>
?</target>
?
?<target name="build" depends="init">
??<echo message="編譯中..."/>
??<javac srcdir="${src.dir}" destdir="${build.dir}" verbose="true">
???<classpath refid="myclasspath"/>
?
??<compilerarg value="-Xlint:all"/> <!--網上找了半天才找到的, 用于添加javac的編譯參數-->
??</javac>
?</target>
?
?<target name="clean">
??<echo message="清理中..."/>
??<delete dir="${build.dir}"/>
??<delete dir="${dist.dir}"/>
?</target>
?
?<target name="dist" depends="build">
??<echo message="制作jar..."/>
??<tstamp/>
??<mkdir dir="${dist.dir}"/>
??<jar destfile="${dist.dir}/app-${DSTAMP}${TSTAMP}.jar" basedir="${build.dir}"/>??
?</target>
?
?<target name="javadocs" depends="dist">
??<echo message="制作api手冊..."/>
??<mkdir dir="${build.docs.api}"/>
??????? ?<javadoc packagenames="tax.*"
??????????????? ?? sourcepath="${src.dir}"
?????????????????? defaultexcludes="yes"
???????????????? ? destdir="${build.docs.api}"
???????????????? ? author="true"
???????????????? ? version="true"
???????????????? ? use="true"
???????????????? ? windowtitle="Docs API">
???????????? ??<doctitle><![CDATA[<h1>tax struts ant API Docs</h1>]]></doctitle>
???????????? ??<bottom><![CDATA[<i>${app.copyright}</i>]]></bottom>
??????? </javadoc>
??? ?</target>
</project>
?
?
?
?
?
?
?
?
?
?
?別人的build.xml
?
<?xml version="1.0"? encoding="GB2312" ?>
<!--
??? =======================================================================
????? hello-ant 項目 ,學習ant工具的第2個build file.
????? 參照ant的jakarta-ant-1.6alpha的build.xml
????? Copyright (c) 2002 The Neusoft Software Foundation.? All rights
????? reserved.
??? =======================================================================
-->
<project default="dist" basedir=".">
<!--
??? ===================================================================
????? 定義屬性(property tasks)
????? 最好把用到的路徑呀,名稱呀都在這里定義成全局變量
????? 例:定義
????????? <property name="a" value="hello"/>
????? 以后就可以這樣用它:
????????? <property name="b" value="${a}/b"/>
????? 現在:b=="hello/b"
??? ===================================================================
-->
??? <!--主要的系統環境屬性-->
??? <property environment="env"/><!--取window,unix...的環境變量-->
??? <property name="java.home" value="${env.JAVA_HOME}"/>
??? <property name="ant.home"? value="${env.ANT_HOME}"/>
??? <!--主要的app環境屬性-->
??? <property name="app.name"????? value="hello-ant"/>
??? <property name="app.jar"?????? value="${app.name}.jar"/>
??? <property name="app.copyright" value=" Copyright (c) 2002 The Neusoft Software Foundation.? All rights reserved."/>
??? <!--app中src的屬性-->
??? <property name="src.dir"??? value="src" />
??? <property name="src.main"?? value="${src.dir}/main"/>
??? <property name="src.script" value="${src.dir}/script"/>
??? <!--app用到的lib-->
??? <property name="lib.dir" value="lib"/>
??? <!--app的build目錄中-->
??? <property name="build.dir"????? value="build" />
??? <property name="build.classes"? value="${build.dir}/classes"/>
??? <property name="build.docs"???? value="${build.dir}/docs"/>
??? <property name="build.docs.api" value="${build.docs}/api"/>
??? <property name="build.lib"????? value="${build.dir}/lib"/>
??? <!--app的dist (distribution) 目錄中-->
??? <property name="dist.dir"????? value="dist"/>
??? <property name="dist.bin"????? value="${dist.dir}/bin"/>
??? <property name="dist.docs"???? value="${dist.dir}/docs"/>
??? <property name="dist.lib"????? value="${dist.dir}/lib"/>
??? <!--app的docs目錄中-->
??? <property name="docs.dir"????? value="docs"/>
??? <!--
??? 定義一組路徑以后可以通過id重用這組路徑 ,例:
??? <javac srcdir="src/main" destdir="build/classes">
??????????? <classpath refid="classpath"/>
??? </javac>
??? -->
??? <path id="classpath">
??????? <!--本項目只有一個java,用不上classpath,這里只是做個例子-->
??????? <pathelement location="${build.classes}"/>
??????? <pathelement path="${java.home}/lib/tools.jar"/>
??? </path>
<!--
??? ===================================================================
????? init 準備目錄(File Tasks)
????? 主要的目錄結構通常是不會變的,一起生成他們
??? ===================================================================
-->
??? <target name="init">
??????? <!--清除以前目錄-->
??????? <delete dir="${build.dir}" failonerror="false" />
??????? <delete dir="${dist.dir}"? failonerror="false"/>
??????? <!--準備目錄-->
??????? <mkdir dir="${build.dir}"/>
??????? <mkdir dir="${build.classes}"/>
??????? <mkdir dir="${build.docs}"/>
??????? <mkdir dir="${build.docs.api}"/>
??????? <mkdir dir="${build.lib}"/>
??????? <mkdir dir="${dist.dir}"/>
??????? <mkdir dir="${dist.bin}"/>
??????? <mkdir dir="${dist.lib}"/>
??? </target>
<!--
??? ===================================================================
????? Build the code (Compile Tasks,File Tasks)
??? ===================================================================
-->
??? <target name="build" depends="init">
??????? <!--編譯-->
??????? <javac srcdir="${src.main}" destdir="${build.classes}">
??????????? <classpath refid="classpath"/>
??????? </javac>
??? </target>
<!--
??? ===================================================================
????? 打包文檔(Archive Tasks)
????? Create the project jars: xxx1.jar and xxx2.jar
??? ===================================================================
-->
?? <target name="jars" depends="build">
??????? <jar basedir="${build.classes}" jarfile="${build.lib}/${app.jar}"/>
??? </target>
<!--
???? ===================================================================
?????? Creates the API documentation
???? ===================================================================
-->
??? <target name="javadocs"
??????????? depends="jars"
??????????? description="--> creates the API documentation">
??????? <!--copy docs 手冊... -->
??????? <copy todir="${build.docs}">
??????????? <fileset dir="${docs.dir}"/>
??????? </copy>
??????? <javadoc packagenames="hello.ant.*"
???????????????? sourcepath="${src.main}"
???????????????? defaultexcludes="yes"
???????????????? destdir="${build.docs.api}"
???????????????? author="true"
???????????????? version="true"
???????????????? use="true"
???????????????? windowtitle="Docs API">
???????????? <doctitle><![CDATA[<h1>hello ant Docs API</h1>]]></doctitle>
???????????? <bottom><![CDATA[<i>${app.copyright}</i>]]></bottom>
???????????? <tag name="todo" scope="all" description="To do:" />
???????? </javadoc>
??? </target>
<!--
???? ===================================================================
?????? Create the distribution that can run (Archive Tasks)
?????? 主要是從各目錄中把該copy的copy上
???? ===================================================================
-->
?? <target name="dist" depends="javadocs">
??????? <!--copy bin 執行文件 -->
??????? <copy todir="${dist.bin}">
??????????? <fileset dir="${src.script}/"/>
??????? </copy>
??????? <copy todir="${dist.docs}">
??????????? <fileset dir="${build.docs}/"/>
??????? </copy>
??????? <!-- copy lib 文件 -->
??????? <copy todir="${dist.lib}">
??????????? <fileset dir="${build.lib}/"/>
??????? </copy>
??? </target>
<!--
???? ===================================================================
????? Cleans everything(File Tasks)
????? 例如可以刪除build中的文件,留給你發揮吧
???? ===================================================================
-->
</project>