.
使用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
會自動尋找
.