使用Ant運行本地程序(轉(zhuǎn))
??????????????????????????????????????
.使用Ant運行windows的批處理文件
?????? 要在Ant內(nèi)運行一個外部程序,應(yīng)使用<exec>任務(wù).它允許你執(zhí)行下列操作:
l???????? 指定程序名和要傳入的參數(shù).
l???????? 命名運行目錄.
l???????? 使用failonerror標(biāo)志來控制當(dāng)應(yīng)用程序失敗時是否停止構(gòu)建.
l???????? 指定一個最大程序持續(xù)時間,時間超過則中止程序.任務(wù)在這時被認(rèn)為是失敗,但是至少構(gòu)建會中止,而不是掛起,這對于自動構(gòu)建是至關(guān)重要的.
l???????? 將輸出存到一個文件或特性.
l???????? 指定java調(diào)用本地程序時需要預(yù)先設(shè)定的環(huán)境變量.
?????? 下面來看一個例子:
批處理文件:
Test.bat
P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>@echo offecho Hello > test.txt |
build.xml
SPAN lang=EN-US style="FONT-SIZE: 10pt; BACKGROUND: white; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt; mso-highlight: white"><?xml version="1.0"?> <projectname="batch"default="extract"basedir="."> ??? <targetname="extract"> ?????? <execexecutable ="cmd"> ?????????? <argline="/c a.bat"/>????? ?????? </exec>? ??? </target> </project> |
?????? 使用executable元素標(biāo)記指定使用的命令,具體用法可以在命令行下面輸入help cmd查看.如果你希望在運行批處理發(fā)生錯誤時中止構(gòu)建需要設(shè)定failonerror="on".加入你的外部程序在某個時刻掛起,也許是在與遠(yuǎn)程站點對話,而你不希望構(gòu)建永遠(yuǎn)被掛起,Ant提供了timeout這個屬性,他是一個以毫秒為單位的數(shù)字.下面看一下如何使用Ant來運行tomcat.
?????? 啟動tomcat需要兩個環(huán)境變量CATALINA_HOME, JAVA_HOME,如果你在環(huán)境變量中已經(jīng)設(shè)定,在Ant中就不需要進行處理,如果沒有需要使用<env>屬性來設(shè)定,你也可以使用<env>屬性覆蓋你以前的環(huán)境變量.
SPAN lang=EN-US style="FONT-SIZE: 10pt; BACKGROUND: white; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt; mso-highlight: white"><?xml version="1.0"?> <projectname="batch"default="tomcat-start"basedir="."> ??? <propertyname="tomcat.dir"value="C:\Tomcat5"></property> ??? ??? <targetname="tomcat-start"> ??? <execdir="${tomcat.dir}/bin"executable="cmd"> ?????? <envkey="CATALINA_HOME"path="${tomcat.dir}"/> ?????? <argvalue="/C startup.bat"/> ??? </exec> ??? </target> </project> |
2.使用Ant運行shell文件
????? 由于windowsXP的cmd默認(rèn)沒有安裝ps,bash等命令,所以我們需要借助的三方的軟件來實現(xiàn)這個功能,這里使用cgywin,將cgywin的bin目錄加到環(huán)境變量的Path里面(下面使用Ant運行cvs也會用到).
SPAN lang=EN-US style="FONT-SIZE: 10pt; BACKGROUND: white; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt; mso-highlight: white"><?xml version="1.0"?> <projectname="batch"default="shell"basedir="."> ??? <propertyname="tomcat.dir"value="C:\Tomcat5"></property> ??? ??? <targetname="shell"> ??? <execdir="${tomcat.dir}/bin"executable="bash"> ?????? <envkey="CATALINA_HOME"path="${tomcat.dir}"/> ?????? <argvalue="startup.sh"/> ??? </exec> ??? </target> </project> |
3.使用Ant運行cvs
?????? Ant內(nèi)置cvs屬性,可以很方便的使用cvs:
SPAN lang=EN-US style="FONT-SIZE: 10pt; BACKGROUND: white; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt; mso-highlight: white"><?xml version="1.0"?> <projectname="batch"default="shell"basedir="."> ??? <propertyname="cvs.root"value="..."></property> ??? ??? <targetname="cvs"> ?????? <cvscvsroot="cvs.root"command="checkout ../.."/> ??? </target> </project> |
如果你的Documents and Settings中有.cvspass文件,那么可以不用設(shè)定cvsroot,Ant會自動尋找.
posted on 2006-05-08 17:24
似水流年 閱讀(1466)
評論(0) 編輯 收藏 所屬分類:
Ant