日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ANT不完全总结,包含各种命令,ant例子等,转自:http://lavasoft.blog.51cto.com/62575/87306

發(fā)布時(shí)間:2024/9/27 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ANT不完全总结,包含各种命令,ant例子等,转自:http://lavasoft.blog.51cto.com/62575/87306 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ANT不完全總結(jié) 好久沒有用Ant了,最近讓MyEclipse、JBuilder2008逼的重回Ant上了。手生了,寫了一個(gè)腳本后,重新總結(jié)下。參考了官方的文檔和網(wǎng)上一些資料。 一、ANT的介紹 Ant的全名是"Another Neat Tool",是由James Duncan Davidson在Make工具無法滿足他的需求下所撰寫出來的構(gòu)建(build)工具。 Ant用Java編寫,服務(wù)于Java。 二、ANT的安裝配置 1、獲取ANT [url]http://ant.apache.org/[/url] 2、安裝ANT set ANT_HOME=c:\ant set JAVA_HOME=c:\jdk-1.5.0.05 set PATH=%PATH%;%ANT_HOME%\bin 三、使用ANT Ant的build腳本是一個(gè)XML文件,稱為Buildfile,每個(gè)Buildfile包含一個(gè)project和若干個(gè)target元素,每個(gè)target又可以包含若干個(gè)task元素,每個(gè)task元素可以有一個(gè)id屬性。當(dāng)然id屬性必須在整個(gè)文檔中是唯一的。結(jié)構(gòu)如下: <project/> <target/> <task/> <task/> </target> <target> <task/> </target> </project>? 1、project 有三個(gè)屬性,這些屬性都不是必須的。比如: <project name="testwebant" basedir="." default="all"> 屬性說明如下: name:指定項(xiàng)目的名字。 basedir:指定項(xiàng)目根路徑,用于計(jì)算所有其他路徑的基路徑。該屬性可以被basedir property覆蓋。當(dāng)覆蓋時(shí),該屬性被忽略。如果屬性和basedir property都沒有設(shè)定,就使用buildfile文件的父目錄。 default:指定當(dāng)沒有指定執(zhí)行目標(biāo)時(shí),所要執(zhí)行的目標(biāo)。 2、target 一個(gè)target可以依賴于其他的target。例如,你可能會(huì)有一個(gè)target用于編譯程序,一個(gè)target用于生成可執(zhí)行文件。你在生成可執(zhí)行文件之前必須先編譯通過,所以生成可執(zhí)行文件的target依賴于編譯target。Ant會(huì)處理這種依賴關(guān)系。 Ant會(huì)依照depends屬性中target出現(xiàn)的順序(從左到右)依次執(zhí)行每個(gè)target。然而,要記住的是只要某個(gè)target依賴于一個(gè)target,后者就會(huì)被先執(zhí)行。 <target name="A"/> <target name="B" depends="A"/> <target name="C" depends="B"/> <target name="D" depends="C,B,A"/> 假定我們要執(zhí)行target D。從它的依賴屬性來看,你可能認(rèn)為先執(zhí)行C,然后B,最后A被執(zhí)行。錯(cuò)了,C依賴于B,B依賴于A,所以先執(zhí)行A,然后B,然后C,最后D被執(zhí)行。 一個(gè)target只能被執(zhí)行一次,即時(shí)有多個(gè)target依賴于它。 如果(或如果不)某些屬性被設(shè)定,才執(zhí)行某個(gè)target。這樣,允許根據(jù)系統(tǒng)的狀態(tài)(java version, OS, 命令行屬性定義等等)來更好地控制build的過程。要想讓一個(gè)target這樣做,你就應(yīng)該在target元素中,加入if(或unless)屬性,帶上target因該有所判斷的屬性。例如: <target name="build-module-A" if="module-A-present"/> <target name="build-own-fake-module-A" unless="module-A-present"/> 如果沒有if或unless屬性,target總會(huì)被執(zhí)行。 可選的description屬性可用來提供關(guān)于target的一行描述,這些描述可由-projecthelp命令行選項(xiàng)輸出。 target有下面的屬性,僅僅name屬性是必須的。: name: target的名字。 depends: 用逗號(hào)分隔的target的名字列表,也就是依賴表。 if 執(zhí)行target所需要設(shè)定的屬性名。 unless 執(zhí)行target需要清除設(shè)定的屬性名。 description 關(guān)于target功能的簡(jiǎn)短描述。 3、task task不是一個(gè)Buildfile的元素,是一個(gè)泛稱。 一個(gè)task是一段可執(zhí)行的代碼。 一個(gè)task可以有多個(gè)屬性(如果你愿意的話,可以將其稱之為變量)。屬性只可能包含對(duì)property的引用。這些引用會(huì)在task執(zhí)行前被解析。 下面是Task的一般構(gòu)造形式: <name attribute1="value1" attribute2="value2" ... /> 這里name是task的名字,attributeN是屬性名,valueN是屬性值。 有一套內(nèi)置的(built-in)task,以及一些可選task,但你也可以編寫自己的task。 所有的task都有一個(gè)task名字屬性。Ant用屬性值來產(chǎn)生日志信息。 可以給task賦一個(gè)id屬性: <taskname id="taskID" ... /> 這里taskname是task的名字,而taskID是這個(gè)task的唯一標(biāo)識(shí)符。通過這個(gè)標(biāo)識(shí)符,你可以在腳本中引用相應(yīng)的task。 例如,在腳本中你可以這樣: <script ... > task1.setFoo("bar"); </script> 設(shè)定某個(gè)task實(shí)例的foo屬性。 在另一個(gè)task中(用java編寫),你可以利用下面的語句存取相應(yīng)的實(shí)例。 project.getReference("task1"). 注意1:如果task1還沒有運(yùn)行,就不會(huì)被生效(例如:不設(shè)定屬性),如果你在隨后配置它,你所作的一切都會(huì)被覆蓋。 注意2:未來的Ant版本可能不會(huì)兼容這里所提的屬性,因?yàn)楹苡锌赡芨緵]有task實(shí)例,只有proxies。 4、Properties 一個(gè)project可以有很多的properties。可以在buildfile中用property task來設(shè)定,或在Ant之外設(shè)定。如果是在外部設(shè)定的,則可以通過下面的方式來引入properties配置文件。 <property file="testwebant.properties"/> 一個(gè)property有一個(gè)名字和一個(gè)值。property可用于task的屬性值。這是通過將屬性名放在"${"和"}"之間并放在屬性值的位置來實(shí)現(xiàn)的。例如如果有一個(gè)property builddir的值是"build",這個(gè)property就可用于屬性值:${builddir}/classes。這個(gè)值就可被解析為build/classes。 Ant內(nèi)置屬性 如果你使用了<property> task 定義了所有的系統(tǒng)屬性,Ant允許你使用這些屬性。例如,${os.name}對(duì)應(yīng)操作系統(tǒng)的名字。 要想得到系統(tǒng)屬性的列表可參考the Javadoc of System.getProperties。 除了Java的系統(tǒng)屬性,Ant還定義了一些自己的內(nèi)置屬性: basedir project基目錄的絕對(duì)路徑 (與<project>的basedir屬性一樣)。 ant.file buildfile的絕對(duì)路徑。 ant.version Ant的版本。 ant.project.name 當(dāng)前執(zhí)行的project的名字;由<project>的name屬性設(shè)定. ant.java.version Ant檢測(cè)到的JVM的版本; 目前的值有"1.1", "1.2", "1.3" and "1.4". 例子 <project name="MyProject" default="dist" basedir="."> <!-- set global properties for this build --> <property name="src" value="."/> <property name="build" value="build"/> <property name="dist" value="dist"/> <target name="init"> <!-- Create the time stamp --> <tstamp/> <!-- Create the build directory structure used by compile --> <mkdir dir="${build}"/> </target> <target name="compile" depends="init"> <!-- Compile the java code from ${src} into ${build} --> <javac srcdir="${src}" destdir="${build}"/> </target> <target name="dist" depends="compile"> <!-- Create the distribution directory --> <mkdir dir="${dist}/lib"/> <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --> <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/> </target> <target name="clean"> <!-- Delete the ${build} and ${dist} directory trees --> <delete dir="${build}"/> <delete dir="${dist}"/> </target> </project> 4、PATH和CLASSPATH 你可以用":"和";"作為分隔符,指定類似PATH和CLASSPATH的引用。Ant會(huì)把分隔符轉(zhuǎn)換為當(dāng)前系統(tǒng)所用的分隔符。 當(dāng)需要指定類似路徑的值時(shí),可以使用嵌套元素。一般的形式是 <classpath> <pathelement path="${classpath}"/> <pathelement location="lib/helper.jar"/> </classpath> location屬性指定了相對(duì)于project基目錄的一個(gè)文件和目錄,而path屬性接受逗號(hào)或分號(hào)分隔的一個(gè)位置列表。path屬性一般用作預(yù)定義的路徑--其他情況下,應(yīng)該用多個(gè)location屬性。 為簡(jiǎn)潔起見,classpath標(biāo)簽支持自己的path和location屬性。所以: <classpath> <pathelement path="${classpath}"/> </classpath> 可以被簡(jiǎn)寫作: <classpath path="${classpath}"/> 也可通過<fileset>元素指定路徑。構(gòu)成一個(gè)fileset的多個(gè)文件加入path-like structure的順序是未定的。 <classpath> <pathelement path="${classpath}"/> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> <pathelement location="classes"/> </classpath> 上面的例子構(gòu)造了一個(gè)路徑值包括:${classpath}的路徑,跟著lib目錄下的所有jar文件,接著是classes目錄。 如果你想在多個(gè)task中使用相同的path-like structure,你可以用<path>元素定義他們(與target同級(jí)),然后通過id屬性引用--參考Referencs例子。 path-like structure可能包括對(duì)另一個(gè)path-like structurede的引用(通過嵌套<path>元素): <path id="base.path"> <pathelement path="${classpath}"/> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> <pathelement location="classes"/> </path> <path id="tests.path"> <path refid="base.path"/> <pathelement location="testclasses"/> </path> 前面所提的關(guān)于<classpath>的簡(jiǎn)潔寫法對(duì)于<path>也是有效的,如: <path id="tests.path"> <path refid="base.path"/> <pathelement location="testclasses"/> </path> 可寫成: <path id="base.path" path="${classpath}"/> 5、命令行變量 有些task可接受參數(shù),并將其傳遞給另一個(gè)進(jìn)程。為了能在變量中包含空格字符,可使用嵌套的arg元素。 Attribute Description Required value 一個(gè)命令行變量;可包含空格字符。 只能用一個(gè) line 空格分隔的命令行變量列表。 file 作為命令行變量的文件名;會(huì)被文件的絕對(duì)名替代。 path 一個(gè)作為單個(gè)命令行變量的path-like的字符串;或作為分隔符,Ant會(huì)將其轉(zhuǎn)變?yōu)樘囟ㄆ脚_(tái)的分隔符。 例子 <arg value="-l -a"/> 是一個(gè)含有空格的單個(gè)的命令行變量。 <arg line="-l -a"/> 是兩個(gè)空格分隔的命令行變量。 <arg path="/dir;/dir2:\dir3"/> 是一個(gè)命令行變量,其值在DOS系統(tǒng)上為\dir;\dir2;\dir3;在Unix系統(tǒng)上為/dir:/dir2:/dir3 。 6、ID引用 buildfile元素的id屬性可用來引用這些元素。如果你需要一遍遍的復(fù)制相同的XML代碼塊,這一屬性就很有用--如多次使用<classpath>結(jié)構(gòu)。 下面的例子: <project ... > <target ... >??? <rmic ...>????? <classpath>??????? <pathelement location="lib/"/>??????? <pathelement path="${java.class.path}/"/>??????? <pathelement path="${additional.path}"/>????? </classpath>??? </rmic> </target> <target ... > <javac ...> <classpath> <pathelement location="lib/"/> <pathelement path="${java.class.path}/"/> <pathelement path="${additional.path}"/> </classpath> </javac> </target> </project> 可以寫成如下形式: <project ... > <path id="project.class.path"> <pathelement location="lib/"/> <pathelement path="${java.class.path}/"/>?? <pathelement path="${additional.path}"/> </path> <target ... > <rmic ...> <classpath refid="project.class.path"/> </rmic> </target> <target ... > <javac ...> <classpath refid="project.class.path"/> </javac> </target> </project> 所有使用PatternSets, FileSets 或 path-like structures嵌套元素的task也接受這種類型的引用。 四、Ant內(nèi)置的常用任務(wù) Ant中內(nèi)置的任務(wù)很多很多,要想記住每個(gè)任務(wù)幾乎異想天開,對(duì)于開發(fā)者來說,我們僅僅需要知道一些常見的任務(wù)使用即可。對(duì)于不常用的任務(wù),可以在使用的時(shí)候直接到[url]http://ant.apache.org/manual/index.html[/url]里去查看使用手冊(cè)。 Ant中的任務(wù)可以為3類。 核心任務(wù)。核心任務(wù)是Ant自帶的任務(wù)。 可選任務(wù)。可選任務(wù)實(shí)來自第三方的任務(wù),因此需要一個(gè)附加的JAR文件。 用戶自定義的任務(wù)。用戶自定義的任務(wù)實(shí)用戶自己開發(fā)的任務(wù)。 下面是Ant中常用的一些任務(wù)用法的簡(jiǎn)單總結(jié): 1、<mkdir> 創(chuàng)建一個(gè)目錄,如果他的父目錄不存在,也會(huì)被同時(shí)創(chuàng)建。它有一個(gè)屬性dir用來指定所創(chuàng)建的目錄名,其代碼如下: <mkdir dir="build/classes"/> 如果build不存在,也會(huì)被同時(shí)創(chuàng)建。 2、<delete> 刪除文件或者目錄, 如: <delete dir="${testwebant.output.dir}"/> 屬性如下: file表示要?jiǎng)h除的文件。 dir表示要?jiǎng)h除的目錄。 includeEmptyDirs 表示指定是否要?jiǎng)h除空目錄,默認(rèn)值是刪除。 failonerror 表示指定當(dāng)碰到錯(cuò)誤是否停止,默認(rèn)值是自動(dòng)停止。 verbose 表示指定是否列出所刪除的文件,默認(rèn)值為不列出。 (1). 刪除一個(gè)文件 <delete file="/lib/ant.jar"/> (2). 刪除指定目錄及其子目錄 <delete dir="lib"/> (3). 刪除指定的一組文件 <delete> <fileset dir="." includes="**/*.bak"/> </delete> (4). 刪除指定目錄及其子目錄,包括他自己 <delete includeEmptyDirs="true"> <fileset dir="build"/> </delete> 3、<jar> 該標(biāo)簽用來生成一個(gè)jar文件,其屬性如下。 destfile 表示jar文件名。 basedir? 表示被歸檔的文件夾。 includes 表示被歸檔的文件模式。 exchudes 表示被排除的文件模式。 例如: <jar destfile="helloworld.jar" basedir="build/classes"> <manifest> <attribute name="Main-class" value="HelloWorld"/> </manifest> </jar> 4、<javac> 該標(biāo)簽用于編譯一個(gè)或一組java文件,其屬性如下。 srcdir 表示源文件的目錄。 destdir 表示class文件的輸出目錄。 include 表示被編譯的文件的模式。 excludes 表示被排除的文件的模式。 classpath 表示所使用的類路徑。 debug 表示包含的調(diào)試信息。 optimize 表示是否使用優(yōu)化。 verbose 表示提供詳細(xì)的輸出信息。 fileonerror 表示當(dāng)碰到錯(cuò)誤就自動(dòng)停止。 5、<java> 該標(biāo)簽用來執(zhí)行編譯生成的.class文件,其屬性如下。 classname 表示將執(zhí)行的類名。 jar 表示包含該類的JAR文件名。 classpath 所表示用到的類路徑。 fork 表示在一個(gè)新的虛擬機(jī)中運(yùn)行該類。 failonerror 表示當(dāng)出現(xiàn)錯(cuò)誤時(shí)自動(dòng)停止。 output 表示輸出文件。 append 表示追加或者覆蓋默認(rèn)文件。 例如: <java classname="HelloWorld"> <classpath> <pathelement path="build/classes"/> </classpath> </java> 6、<copy> 該標(biāo)簽用于文件或文件集的拷貝,其屬性如下。 file 表示源文件。 tofile 表示目標(biāo)文件。 todir 表示目標(biāo)目錄。 overwrite 表示指定是否覆蓋目標(biāo)文件,默認(rèn)值是不覆蓋。 includeEmptyDirs 表示制定是否拷貝空目錄,默認(rèn)值為拷貝。 failonerror 表示指定如目標(biāo)沒有發(fā)現(xiàn)是否自動(dòng)停止,默認(rèn)值是停止。 verbose 表示制定是否顯示詳細(xì)信息,默認(rèn)值不顯示。 (1). 拷貝單個(gè)的文件: <copy file="myfile.txt" tofile="mycopy.txt"/> (2). 拷貝單個(gè)的文件到指定目錄下 <copy file="myfile.txt" todir="../some/other/dir"/> (3). 拷貝一個(gè)目錄到另外一個(gè)目錄下 <copy todir="../new/dir"> <fileset dir="src_dir"/> </copy> (4). 拷貝一批文件到指定目錄下 <copy todir="../dest/dir"> <fileset dir="src_dir"> <exclude name="**/*.java"/> </fileset> </copy> <copy todir="../dest/dir"> <fileset dir="src_dir" excludes="**/*.java"/> </copy> (5). 拷貝一批文件到指定目錄下,將文件名后增加.bak后綴 <copy todir="../backup/dir"> <fileset dir="src_dir"/> <mapper type="glob" from="*" to="*.bak"/> </copy> (6). 拷貝一組文件到指定目錄下,替換其中指定<標(biāo)簽>內(nèi)容 <copy todir="../backup/dir"> <fileset dir="src_dir"/> <filterset> <filter token="TITLE" value="Foo Bar"/> </filterset> </copy> 7、<move> 移動(dòng)或重命名一個(gè)(組)文件、目錄 (1). 移動(dòng)或重命名一個(gè)文件 <move file="file.orig" tofile="file.moved"/> (2). 移動(dòng)或重命名一個(gè)文件到另一個(gè)文件夾下面 <move file="file.orig" todir="dir/to/move/to"/> (3). 將一個(gè)目錄移到另外一個(gè)目錄下 <move todir="new/dir/to/move/to"> <fileset dir="src/dir"/> </move> (4). 將一組文件移動(dòng)到另外的目錄下 <move todir="some/new/dir"> <fileset dir="my/src/dir"> <include name="**/*.jar"/> <exclude name="**/ant.jar"/> </fileset> </move> (5). 移動(dòng)文件過程中增加.bak后綴 <move todir="my/src/dir"> <fileset dir="my/src/dir"> <exclude name="**/*.bak"/> </fileset> <mapper type="glob" from="*" to="*.bak"/> </move> 五、Ant的數(shù)據(jù)類型 在構(gòu)建文件中為了標(biāo)識(shí)文件或文件組,經(jīng)常需要使用數(shù)據(jù)類型。數(shù)據(jù)類型包含在org.apache.tool.ant.types包中。下面介紹構(gòu)建文件中一些常用的數(shù)據(jù)類型。 1、argument 類型 由Ant構(gòu)建文件調(diào)用的程序,可以通過<arg>元素向其傳遞命令行參數(shù),如apply,exec和java任務(wù)均可接受嵌套<arg>元素,可以為各自的過程調(diào)用指定參數(shù)。 以下是<arg>的所有屬性: values 是一個(gè)命令參數(shù)。如果參數(shù)種有空格,但又想將它作為單獨(dú)一個(gè)值,則使用此屬性。 file 表示一個(gè)參數(shù)的文件名。在構(gòu)建文件中,此文件名相對(duì)于當(dāng)前的工作目錄。 line 表示用空格分隔的多個(gè)參數(shù)列表。 path 表示路徑。 2、ervironment 類型 由Ant構(gòu)建文件調(diào)用的外部命令或程序,<env>元素制定了哪些環(huán)境變量要傳遞給正在執(zhí)行的系統(tǒng)命令, <env>元素可以接受以下屬性: file 表示環(huán)境變量值得文件名。此文件名要被轉(zhuǎn)換位一個(gè)絕對(duì)路徑。 path 表示環(huán)境變量的路徑。Ant會(huì)將它轉(zhuǎn)換為一個(gè)本地約定。 value 表示環(huán)境變量的一個(gè)直接變量。 key 表示環(huán)境變量名。 注意? file path 或 value只能取一個(gè)。 3、filelist類型 filelist是一個(gè)支持命名的文件列表的數(shù)據(jù)類型,包含在一個(gè)filelist類型中的文件不一定是存在的文件。 以下是其所有的屬性: dir是用于計(jì)算絕對(duì)文件名的目錄。 files 是用逗號(hào)分隔的文件名列表。 refid 是對(duì)某處定義的一個(gè)<filelist>的引用。 注意? dir 和 files 都是必要的,除非指定了refid(這種情況下,dir和files都不允許使用)。 4、fileset類型 fileset數(shù)據(jù)類型定義了一組文件,是一個(gè)文件的集合,并通常表示為<fileset>元素。不過,許多ant任務(wù)構(gòu)建成了隱式的fileset,這說明他們支持所有的fileset屬性和嵌套元素。 以下為fileset 的屬性列表: dir 表示fileset 的基目錄。 casesensitive 的值如果為false,那么匹配文件名時(shí),fileset不是區(qū)分大小寫的,其默認(rèn)值為true. defaultexcludes 用來確定是否使用默認(rèn)的排除模式,默認(rèn)為true。 excludes 是用逗號(hào)分隔的需要派出的文件模式列表。 excludesfile 表示每行包含一個(gè)排除模式的文件的文件名。 includes 是用逗號(hào)分隔的,需要包含的文件模式列表。 includesfile 表示每行包括一個(gè)包含模式的文件名。 5、patternset類型 fileset是文件的集合,而patternset是對(duì)模式的集合,他們是緊密相關(guān)的概念。 <patternset>支持4個(gè)屬性: includes excludex includexfile 和 excludesfile,與fileset相同。 <patternset>還允許以下嵌套元素:include,exclude,includefile 和 excludesfile。 6、filterset類型 filterset定義了過濾器集合,這些過濾器將在文件移動(dòng)或復(fù)制時(shí)完成文件的文本替換。 主要屬性如下: begintoken 表示嵌套過濾器所搜索的記號(hào),這是標(biāo)識(shí)其開始的字符串。 endtoken 表示嵌套過濾器所搜索的記號(hào)這是標(biāo)識(shí)其結(jié)束的字符串。 id 是過濾器的唯一標(biāo)志符。 refid 是對(duì)構(gòu)建文件中某處定義一個(gè)過濾器的引用。 7、path類型 path元素用來表示一個(gè)類路徑,不過它還可以用于表示其他的路徑。在用作這個(gè)屬性時(shí),路經(jīng)中的各項(xiàng)用分號(hào)或冒號(hào)隔開。在構(gòu)建的時(shí)候,此分隔符將代替當(dāng)前平臺(tái)中所有的路徑分隔符。 path擁有的屬性如下: location 表示一個(gè)文件或目錄。Ant在內(nèi)部將此擴(kuò)展為一個(gè)絕對(duì)路徑。 refid 是對(duì)當(dāng)前構(gòu)建文件中某處定義的一個(gè)path的引用。 path 表示一個(gè)文件或路徑名列表。 8、path與classpath類型 參看第三部分中的介紹。 <classpath id="project.class.path"> <pathelement path="${classpath}"/> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> <pathelement location="classes"/> <dirset dir="build"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/> </dirset> <filelist refid="third-party_jars"/> </classpath> <path id="classpath"> <pathelement location="${classes}"/> <fileset dir="${lib}" includes="**/*.jar"/> <fileset dir="${devlib}" includes="**/*.jar"/> </path> 9、mapper類型 mapper類型定義了一組輸入文件和一組輸出文件間的關(guān)系。 其屬性如下。 classname 表示實(shí)現(xiàn)mapper類的類名。當(dāng)內(nèi)置mapper不滿足要求時(shí),用于創(chuàng)建定制mapper. classpath 表示查找一個(gè)定制mapper時(shí)所用的類型路徑。 classpathref 是對(duì)某處定義的一個(gè)類路徑的引用。 from 屬性的含義取決于所用的mapper. to 屬性的含義取決于所用的mapper. type 屬性的取值為identity,flatten glob merge? regexp? 其中之一,它定義了要是用的內(nèi)置mapper的類型。 10、echo 該任務(wù)的作用是根據(jù)日志或監(jiān)控器的級(jí)別輸出信息。 它包括message、file、append和level四個(gè)屬性, 舉例如下: <echo message="Hello,Amigo" file="logs/system.log" append="true"> 六、下面是一個(gè)Java工程的build文件 <?xml version="1.0" encoding="GBK"?> <project name="javaApp" basedir="." default="init"> <property name="project.name" value="javaApp"/> <property name="src" value="src"/> <property name="lib" value="lib"/> <property name="classes" value="classes"/> <property name="dist" value="dist"/> <property name="doc" value="doc"/> <property name="javadoc" value="${doc}/javadoc"/> <path id="applib"> <pathelement location="${classes}"/> <fileset dir="${lib}" includes="**/*.jar"/> </path> <target name="init"> <mkdir dir="${classes}"/> <mkdir dir="${dist}"/> <mkdir dir="${javadoc}"/> </target> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${classes}" debug="false" fork="true"> <classpath refid="applib"/> </javac> </target> <target name="jar" depends="compile"> <jar destfile="${dist}/javaApp.jar" basedir="${classes}"/> </target> <target name="clean"> <delete dir="${classes}"/> <delete dir="${dist}"/> <delete dir="${javadoc}"/> </target> <target name="javadoc" depends="compile"> <delete dir="${javadoc}"/> <mkdir dir="${javadoc}"/> <javadoc destdir="${javadoc}" author="true" use="true" windowtitle="${project.name} API"> <packageset dir="${src}" defaultexcludes="yes"/> <doctitle><![CDATA[<h1>${project.name}</h1>]]></doctitle> <bottom><![CDATA[<i>Document by Leizhimin 2008.</i>]]></bottom> </javadoc> </target> <target name="help"> <exec executable="cmd"> <arg value="/c"/> <arg value="ant.bat"/> <arg value="-p"/> </exec> </target> </project>

總結(jié)

以上是生活随笔為你收集整理的ANT不完全总结,包含各种命令,ant例子等,转自:http://lavasoft.blog.51cto.com/62575/87306的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性色AV无码久久一区二区三 | 美女的奶胸大爽爽大片 | 国产综合欧美 | 日本天堂网| 在线a毛片| 91猎奇在线观看 | 操批网站| 欧美日韩人妻一区二区 | 久操超碰 | 黄网站免费在线观看 | 人妻 日韩 欧美 综合 制服 | 久久九精品 | 午夜啪视频 | 欧美日韩一二三四 | 免费的一级黄色片 | 毛片在线免费观看网址 | 欧美一级二级三级视频 | 亚洲自偷自偷偷色无码中文 | 中文字幕日韩亚洲 | 久久精品视频中文字幕 | 在线观看亚洲精品视频 | av资源站最新av | 91网在线| 一区二区在线观看免费视频 | 日韩激情国产 | 久久久网站 | 欧美日韩视频一区二区三区 | 久久精品99国产精品日本 | 久操资源网 | 噼里啪啦免费观看 | 亚洲天堂中文字幕 | 午夜福利视频 | 中文字幕有码在线视频 | 欧美性猛交久久久乱大交小说 | 免费看黄色三级 | 91精品国产乱码久久久久久久久 | 91黄色免费 | 久久久噜噜噜久久 | 国产欧美日韩亚洲 | 国偷自产av一区二区三区麻豆 | 亚洲av综合av一区二区三区 | 91波多野结衣 | 黄色片免费的 | 精东影业一区二区三区 | 青青视频免费观看 | 超碰97在线看 | 干一干操一操 | 日韩国产精品一区二区三区 | 久久美女免费视频 | 操屁股视频| 午夜美女网站 | 色哟哟免费在线观看 | 中文字幕日韩欧美 | 久久偷看各类女兵18女厕嘘嘘 | 国产精品国产三级国产 | 理论黄色片 | 国产精品主播一区二区 | 肉色超薄丝袜脚交一区二区图片 | 91porn破解版 | 亚洲国产精品成人va在线观看 | 欧美黑人三级 | 用力挺进新婚白嫩少妇 | 99插插插| 国产第20页 | 高清视频免费在线观看 | 久草热视频 | 日本一区二区三区免费观看 | 亚洲一区视频网站 | 在线观看99 | 超碰国产91 | 精品毛片一区二区三区 | 熟妇高潮喷沈阳45熟妇高潮喷 | 国语对白清晰刺激对白 | a天堂视频在线观看 | 日韩中文字幕在线免费观看 | 美女大黄网站 | 免费大片在线观看www | 成人免费公开视频 | 日本美女交配 | 一级在线毛片 | 久久久久久蜜桃 | 精品黑人| 捆绑凌虐一区二区三区 | 久久久久久久久久久久 | 欧美大片91 | 亚洲国产精品影院 | 国产另类av | 久久久久久久精 | 久久女人网 | 久久久精品人妻av一区二区三区 | 永久免费精品影视网站 | 成年人性生活视频 | 少妇无套内谢久久久久 | 国产欧美一区二区精品性色99 | 久久久网 | 日韩欧美大片在线观看 | 国产色图视频 | 大尺码肥胖女系列av | 伊人三级 |