使用Ant運行本地程序(轉)
??????????????????????????????????????
.使用Ant運行windows的批處理文件
?????? 要在Ant內運行一個外部程序,應使用<exec>任務.它允許你執行下列操作:
l???????? 指定程序名和要傳入的參數.
l???????? 命名運行目錄.
l???????? 使用failonerror標志來控制當應用程序失敗時是否停止構建.
l???????? 指定一個最大程序持續時間,時間超過則中止程序.任務在這時被認為是失敗,但是至少構建會中止,而不是掛起,這對于自動構建是至關重要的.
l???????? 將輸出存到一個文件或特性.
l???????? 指定java調用本地程序時需要預先設定的環境變量.
?????? 下面來看一個例子:
批處理文件:
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元素標記指定使用的命令,具體用法可以在命令行下面輸入help cmd查看.如果你希望在運行批處理發生錯誤時中止構建需要設定failonerror="on".加入你的外部程序在某個時刻掛起,也許是在與遠程站點對話,而你不希望構建永遠被掛起,Ant提供了timeout這個屬性,他是一個以毫秒為單位的數字.下面看一下如何使用Ant來運行tomcat.
?????? 啟動tomcat需要兩個環境變量CATALINA_HOME, JAVA_HOME,如果你在環境變量中已經設定,在Ant中就不需要進行處理,如果沒有需要使用<env>屬性來設定,你也可以使用<env>屬性覆蓋你以前的環境變量.
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默認沒有安裝ps,bash等命令,所以我們需要借助的三方的軟件來實現這個功能,這里使用cgywin,將cgywin的bin目錄加到環境變量的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內置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文件,那么可以不用設定cvsroot,Ant會自動尋找.
posted on 2006-05-08 17:24
似水流年 閱讀(1466)
評論(0) 編輯 收藏 所屬分類:
Ant