.
使用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
会自动寻找
.