无所不能的“蚂蚁”--Ant(四)

.使用Ant运行本地程序

1.使用Ant运行windows的批处理文件

 

       要在Ant内运行一个外部程序,应使用任务.它允许你执行下列操作:

l         指定程序名和要传入的参数.

l         命名运行目录.

l         使用failonerror标志来控制当应用程序失败时是否停止构建.

l         指定一个最大程序持续时间,时间超过则中止程序.任务在这时被认为是失败,但是至少构建会中止,而不是挂起,这对于自动构建是至关重要的.

l         将输出存到一个文件或特性.

l         指定java调用本地程序时需要预先设定的环境变量.

 

       下面来看一个例子:

批处理文件:

Test.bat

@echo off

 

echo Hello > test.txt

 

 

 

 

 

build.xml

 

name="batch" default="extract" basedir=".">

 

    name="extract">

 

       executable ="cmd">

 

           line="/c a.bat"/>     

 

        

 

   

 

 

 

 

 

 

 

 

 

       使用executable元素标记指定使用的命令,具体用法可以在命令行下面输入help cmd查看.如果你希望在运行批处理发生错误时中止构建需要设定failοnerrοr="on".加入你的外部程序在某个时刻挂起,也许是在与远程站点对话,而你不希望构建永远被挂起,Ant提供了timeout这个属性,他是一个以毫秒为单位的数字.下面看一下如何使用Ant来运行tomcat.

       启动tomcat需要两个环境变量CATALINA_HOME, JAVA_HOME,如果你在环境变量中已经设定,Ant中就不需要进行处理,如果没有需要使用属性来设定,你也可以使用属性覆盖你以前的环境变量.

 

 

 

name="batch" default="tomcat-start" basedir=".">

 

    name="tomcat.dir" value="C:\Tomcat5">

 

   

 

 

    name="tomcat-start">

 

    dir="${tomcat.dir}/bin" executable="cmd">

 

       key="CATALINA_HOME" path="${tomcat.dir}"/>

 

       value="/C startup.bat"/>

 

   

 

   

 

 

 

 

 

 

 

 

 

 

 

 

2.使用Ant运行shell文件

 

      由于windowsXPcmd默认没有安装ps,bash等命令,所以我们需要借助的三方的软件来实现这个功能,这里使用cgywin,cgywinbin目录加到环境变量的Path里面(下面使用Ant运行cvs也会用到).

 

 

name="batch" default="shell" basedir=".">

 

    name="tomcat.dir" value="C:\Tomcat5">

 

   

 

 

    name="shell">

 

    dir="${tomcat.dir}/bin" executable="bash">

 

       key="CATALINA_HOME" path="${tomcat.dir}"/>

 

       value="startup.sh"/>

 

   

 

   

 

 

 

 

 

 

 

 

 

 

 

3.使用Ant运行cvs

 

 

       Ant内置cvs属性,可以很方便的使用cvs:

 

 

name="batch" default="shell" basedir=".">

 

    name="cvs.root" value="...">

 

   

 

 

    name="cvs">

 

       cvsroot="cvs.root" command="checkout ../.."/>

 

   

 

 

 

 

 

 

 

 

如果你的Documents and Settings中有.cvspass文件,那么可以不用设定cvsroot,Ant会自动寻找.

 

 

 

.工程的打包部署

 

       工程的打包,主要就是文件的操作,下面通过例子简单介绍一下文件的移动,复制和删除.

 

 

name="project" default="jar">

 

    name="copy">

 

      

 

           property="time.format"                                           pattern="yyyy-mm-dd'T'HH:mm:ss"

 

              locale="en"/>

 

      

 

       tofile="dist/readme" file="test.txt">

 

          

 

              token="TIME" value="${time.format}"/>

 

          

 

      

 

   

 

 

    name="move">

 

       todir="dist">

 

           dir="lib">

 

              name="*.jar"/>

 

你可能感兴趣的:(JAVA相关)