ant使用簡(jiǎn)介ant 是apache 工程的一個(gè)子工程,,是一個(gè)基于java的build工具,。ant類似于make工具,,但沒有傳統(tǒng)的make工具的缺點(diǎn)。傳統(tǒng)的make往往只能限制在某一平臺(tái)上使用,ant本身用java類實(shí)現(xiàn),要構(gòu)建的工程的配置文件用xml格式描述,可以很方便實(shí)現(xiàn)多平臺(tái)編譯,非常適合build大型工程,。 1.安裝配置ant: ant 可以從http://ant.下載,目前最新版本為1.5.2,。下載完畢后直接解壓縮,,目錄如下: ant +-- bin // contains launcher scripts | +-- lib // contains Ant jars plus necessary dependencies | +-- docs // contains documentation | +-- ant2 // a brief description of ant2 requirements | | | +-- images // various logos for html documentation | | | +-- manual // Ant documentation (a must read ) | +-- etc 需要設(shè)置的環(huán)境變量: ANT_HOME:ant的安裝目錄 JAVA_HOME:jdk的安裝目錄 PATH:把%ANT_HOME%\bin目錄加到path變量,以便于從命令行下直接運(yùn)行ant 假定ant裝在c:\ant jdk裝d:\j2sdk1.4.0 則在命令行下執(zhí)行以下命令: set ANT_HOME=c:\ant set JAVA_HOME=D:\j2sdk1.4.0 set PATH=%PATH%;c:\ant\bin 在win2000命令提示符下工作時(shí),,每次都必須進(jìn)行上面的設(shè)置,,退出命令提示符后,這些變量的值又會(huì)恢復(fù)成原來的樣子,。為了避免這些麻煩,,可以在 控制面板\系統(tǒng)\高級(jí)\環(huán)境變量 中設(shè)置。 上述設(shè)置完成后,,就可以使用ant了,。 2.建立工程描述文件build.xml 用ant編譯規(guī)模較大的工程非常方便,每個(gè)工程都對(duì)應(yīng)一個(gè)build.xml文件,,這個(gè)文件包含與這個(gè)工程有關(guān)的路徑信息和任務(wù),。下面是一個(gè)build.xml的例子: <project name="logon" basedir="." default="dist"> <property name="dist.name" value="struts_demo"/> <property name="src" location="src"/> <property name="build" location="WEB-INF/classes"/> <property name="dist" location="D:/tomcat/webapps/dist"/> <!-- Build working classpath --> <path id="project.class.path"> <pathelement path ="WEB-INF/lib/struts.jar"/> <pathelement path ="WEB-INF/classes"/> <pathelement path ="${classpath}"/> </path> <target name="init"> <tstamp/> <!-- Create the build directory structure used by compile --> <delete dir="${dist}"/> </target> <target name="compile" depends="init"> <javac srcdir="${src}" destdir="${build}"> <classpath refid="project.class.path"/> </javac> </target> <!-- Build binary distribution --> <target name="dist" depends="compile" description="Create binary distribution"> <mkdir dir="${dist}"/> <war destfile="${dist}/${dist.name}.war" webxml="WEB-INF/web.xml"> <lib dir="WEB-INF/lib"/> <classes dir="WEB-INF/classes"/> <fileset dir="${basedir}"/> </war> </target> </project> 要構(gòu)建的工程目錄如下: struts_demo +--jsp | +--src | +--WEB-INF | +--classes | | | +--lib | | | +--web.xml | +--build.xml 每個(gè)build.xml文件都包含一個(gè)project和至少一個(gè)target。target包含任務(wù)元素,,任務(wù)是一段可執(zhí)行代碼,,每個(gè)任務(wù)元素都有一個(gè)id屬性,以便于在文件中引用。ant有內(nèi)置任務(wù)集可供使用,,如上面文件中用到的property,、javac和war,分別完成設(shè)置屬性、編譯和打包任務(wù),。當(dāng)然如果需要的話也可以寫自己的任務(wù),。 build.xml的根元素是progject,它有三個(gè)屬性name default basedir,其中default是必需的。name指定工程的名字,,basedir表示工程的基路徑,設(shè)置為"."表示build.xml所在的路徑,。default表示默認(rèn)的target,,運(yùn)行ant時(shí)如果不指定target,則用default指定的target. property任務(wù)用來設(shè)置屬性,,一個(gè)工程可以設(shè)置很多屬性,,屬性有名字和值,屬性設(shè)置后可以在后面引用,。 <property name="dist.name" value="struts_demo"/>設(shè)置一個(gè)名字為dist.name的屬性,,其值為struts_demo,后面使用時(shí)用${dist.name}引用,,表示字符串struts_demo. <property name="src" location="src"/>設(shè)置一個(gè)名字為src的屬性,,它的值是一個(gè)路徑,用location設(shè)置,。如果location內(nèi)容以/或\或D:\ C:\之類開始,,表示絕對(duì)路徑,否則表示相對(duì)路徑,,相對(duì)于project中設(shè)置的basedir. 使用path或classpath可以設(shè)置類的路徑,,后面引用時(shí)用id設(shè)置的值 構(gòu)建工程最常用的ant內(nèi)置任務(wù): mkdir: 創(chuàng)建目錄,dir=要?jiǎng)?chuàng)建的目錄 delete: 刪除文件或文件夾 dir=要?jiǎng)h除的文件或文件夾 javac: 編譯java源文件,,java源文件放在srcdir指定的文件夾中,,生成的.class文件按照 package語句組織目錄,存放在destdir指定的文件夾中,。要注意源文件的目錄組織要與package語句相一致 war: 為web應(yīng)用程序打包,,destfile指定打包后生成的文件名,webxml指定所用的web.xml文件,。<fileset dir="${basedir}"/>將basedir目錄下所有的文件也放在包中 上面的build.xml例子中,,target中的屬性depends表示在執(zhí)行本target之前必須要做的target, 例如dist 的depends=compile,意思是在用dist打包之前必須先用compile編譯。這樣當(dāng)執(zhí)行dist時(shí)首先執(zhí)行compile 3.運(yùn)行ant: 使用ant.bat可以直接運(yùn)行ant,如果不帶任何參數(shù),,ant會(huì)在當(dāng)前路徑下搜索build.xml文件,,如果找到,就運(yùn)行project的default指定的target.也可以帶參數(shù)來選擇build.xml文件和要運(yùn)行的target 對(duì)于上面的例子,假定build.xml所在的目錄為D:\struts_demo\ ,則下面三種執(zhí)行方式效果是一樣的: 1. cd d:\struts_demo ant 2. ant -buildfile d:\struts_demo\build.xml 3. ant -buildfile d:\struts_demo\build.xml dist 如果執(zhí)行ant -buildfile d:\struts_demo\build.xml compile,則執(zhí)行compile target 有關(guān)ant使用和build.xml文件內(nèi)容,在ant的manual中有詳細(xì)的描述,。 |
|