1.ant:執行多個構件檔案<br />Ant 任務包括antfile、dir、target、output、inheritAll、inheritRefs</p><p>編寫projectA.xml構件檔案如下:<br /><project name="projectA" default="callProjectB"><br /> <target name="callProjectB"><br /> <echo message="In projectA calling projectB"/><br /> <ant antfile="subfile/projectB.xml" target="target2"/><br /> </target><br /></project><br />被調用的projectB.xml構件檔案的內容如下:<br /><project name="projectB" default="init"><br /> <target name="init"><br /> <echo message="In projectB"/><br /> </target><br /> <target name="target2"><br /> <echo message="In projectB,execute target2"/><br /> </target><br /></project></p><p>inheritAll屬性指定被調用的構件檔案可以使用當前構件檔案中的屬性,預設為true<br /><ant antfile="subfile/projectB.xml" inheritAll="true"/></p><p>inheritRefs屬性指定被調用的構件檔案可以引用當前構件中的reference任務<br /><path id="path1">...</path><br /><ant antfile="subfile/projectB.xml" inheritRefs="true"><br /> <reference refid="path1" torefid="path2"/><br /></ant><br />把當前構件檔案中的path1屬性傳遞給被調用的構件中使用,<br />在被調用project中通過path2引用這個屬性</p><p>----------------------------------------------------------<br />2.antcall:執行過程中調用並執行其他target</p><p><project name="antcallSample" default="targetA"><br /> <target name="init"><br /> <echo message="In init target"/><br /> </target><br /> <target name="targetA"><br /> <property name="prop" value="prop property"/><br /> <antcall target="targetB"><br /> <param name="path1" value="path1 param"/><br /> </antcall><br /> <echo message="After call targetB"/><br /> </target><br /> <target name="targetB" depends="init"><br /> <echo message="In targetB"/><br /> <echo message="path1=${path1}"/><br /> <echo message="prop=${prop}"/><br /> </target><br /></project></p><p>----------------------------------------------------------<br />3.apply/execon:通過Ant工具執行系統命令</p><p>----------------------------------------------------------<br />4.chmod:改變Linux/UNIX系統的檔案許可權</p><p>----------------------------------------------------------<br />5.copy:對檔案和目錄進行複製</p><p><copy file="myfile.txt" tofile="mycopy.txt"/><br />在目前的目錄複製myfile.txt,並把複製後的檔案命名為mycopy.txt</p><p><copy file="myfile.txt" todir="../some/other/dir"/><br />把目前的目錄下的myfile.txt到與目前的目錄同級的some目錄的/other/dir子目錄下</p><p><copy todir="../new/dir"><br /> <fileset dir="src_dir"><br /> <exclude name="**/*.java"/><br /> </fileset><br /> <globmapper from="*" to=".bak"/><br /></copy><br />把src_dir目錄及其子目錄下的所有非Java檔案複製到../backup/dir目錄下,並重新命名為bak檔案</p><p><copy todir="../backup/dir"><br /> <fileset dir="src_dir"/><br /> <filterset><br /> <filter token="TITLE" value="Foo Bar"/><br /> </filterset><br /></copy><br />把src_dir目錄下的所有檔案複製到../backup/dir目錄,並在所有檔案中尋找並替換@TITLE@為Foo Bar</p><p>----------------------------------------------------------<br />6.delete:對檔案和目錄進行刪除</p><p><delete file="/lib/ant.jar"/><br /><delete dir="lib"/><br /><delete includeEmptyDirs="true"><br /> <fileset dir="." includes="**/*.bak"/><br /></delete><br />刪除目前的目錄及其子目錄下的所有.bak檔案,同時刪除所有空目錄</p><p>----------------------------------------------------------<br />7.echo:輸出系統資訊</p><p>----------------------------------------------------------<br />8.mkdir:建立目錄</p><p><property name="dist" value="dist"/><br /><mkdir dir="${dist}"/></p><p>----------------------------------------------------------<br />9.move:移動檔案和目錄</p><p><move file="file.orig" tofile="file.moved"/></p><p><move file="file.orig" todir="dir/to/move/to"/></p><p><move todir="new/dir/to/move/to"><br /> <fileset dir="src/dir"/><br /></move></p><p><move todir="my/src/dir" includeemptydirs="false"><br /> <fileset dir="my/src/dir"><br /> <exclude name="**/*.bak"/><br /> </fileset><br /> <globmapper from="*" to="*"/><br /></move><br />把my/src/dir目錄下的所有非.bak檔案重新命名為.bak的備份檔案</p><p>----------------------------------------------------------<br />10. zip:建立zip檔案</p><p><zip destfile="${dist}/manual.zip" basedir="htdocs/manual" includes="api/**/*.html" excludes="**/todo.html"/><br />打包htdocs/manual目錄下的檔案,並命名為manual.zip。<br />在這個zip檔案中只包含htdocs/manual/api目錄或其子目錄下的所有檔案,但不包含其中檔案名稱為todo.html的檔案。</p><p><zip destfile="${dist}/manual.zip"><br /> <zipfileset dir="htdocs/manual" prefix="docs/user-guide"/><br /> <zipfileset dir="." prefix="ChangeLog27.txt" fullpath="docs/ChangeLog.txt"/><br /> <zipfileset src="example.zip" mce_src="example.zip" includes="**/*.html" prefix="docs/examples"/><br /></zip><br />把htdocs/manual目錄下的所有檔案及其子目錄打包到docs/user-guide目錄下;<br />把目前的目錄下的ChangeLog27.txt檔案打包為docs/ChangeLog.txt;<br />同時把example.zip下的所有.html檔案打包到docs/examples下。</p><p><zip destfile="${dist}/manual.zip"><br /> <zipfileset dir="htdocs/manual" prefix="docs/user-guide"/><br /> <zipgroupfileset dir="." includes="example*.zip"/><br /></zip><br />把htdocs/manual下的所有目錄及檔案打包到docs/user-guide下;<br />同時包含所有zip檔案名稱為example*.zip的檔案。</p><p>----------------------------------------------------------<br />11.loadproperties:載入屬性檔案</p><p>copy.properties檔案內容:<br />copy.src=src<br />copy.dest=dest</p><p><project name="loadpropertiesSample" default="copyFile"><br /> <loadproperties srcFile="copy.properties"><br /> <filterchain><br /> <linecontains><br /> <contains value=".copy"/><br /> </linecontains><br /> </filterchain><br /> </loadproperties></p><p> <target name="copyFile"><br /> <copy todir="${copy.dest}"><br /> <fileset dir="${copy.src}"/><br /> </copy><br /> </target><br /></project> </p><p>----------------------------------------------------------<br />12.tstamp</p><p><project name="timestamp" default="timestampTarget"><br /> <tstamp><br /> <format property="TODAY_UK" pattern="d-MMMM-yyyy" locale="en"/><br /> </tstamp><br /> <tstamp><br /> <format property="TODAY_CN" pattern="d-MMMM-yyyy" locale="zh"/><br /> </tstamp><br /> <tstamp><br /> <format property="touch.time" pattern="MM/dd/yyyy hh:mm aa" offset="-5" unit="hour"/><br /> </tstamp></p><p> <target name="timestampTarget"><br /> <echo message="${DSTAMP}"/><br /> <echo message="${TODAY_UK}"/><br /> <echo message="${TODAY_CN}"/><br /> <echo message="${touch.time}"/><br /> </target><br /></project><br />通過${DSTAMP}擷取Ant預設的日期格式。結果為20060708。<br />設定日期格式為d-MMMM-yyyy且使用英文語言。結果為8-July-2006。<br />設定日期格式為d-MMMM-yyyy且使用中文語言。結果為8-七月-2006。<br />設定日期格式為MM/dd/yyyy hh:mm aa,同時設定時間為目前時間減去5個小時。結果為07/08/2006 04:46 下午,執行時間21:46。