ant---

来源:互联网 发布:化妆软件哪个好 编辑:程序博客网 时间:2024/06/05 05:34

ant工具使用之前,需要先设置环境变量,和java类似,可以百度。


在windows下可以使用run.bat批处理文件来运行ant。

内容如下:

@echo off

echo 1.参数设置
rem %CONVERT_HOME%为转换用根目录
if "%CONVERT_HOME%"=="" set CONVERT_HOME=%~dp0..\

rem设置了bat文件所在的上一级目录为CONVERT_HOME变量的路径,也就是转换的根目录


set NLS_LANG=.AL32UTF8
set CONVERT_ANT_PARAMS=-lib %~dp0../../lib -lib %~dp0../etc -Dbasedir=%~dp0../../Convert/bin/result -buildfile %~dp0/Build.xml -Dconfig.file=%~dp0/conversion.properties %*

rem 指定了lib  文件的目录

rem  -Dbasedir 制定了结果的默认保存路径

rem -buildfile 制定了build.xml的路径

rem -Dconfig.file 指定了配置文件的路径


echo 1.1.设置的参数如下
echo CONVERT_HOME=%CONVERT_HOME%
echo NLS_LANG=%NLS_LANG%
echo CONVERT_ANT_PARAMS=%CONVERT_ANT_PARAMS%
echo. %输出一个空行%


echo 分省转出DATA,日志=common.log
call ant -e %CONVERT_ANT_PARAMS% plateres > common.log

rem 屏幕信息都会保存在common.log文件中,这个文件保存在bat同级目录 

rem plateres 是build文件中project的名字,2者要一致,且project中要有同名的target任务


echo 检查运行完毕


pause



而build.xml是ant文件的核心

里面也可以设置变量

<dirname property="convert.basedir" file="${ant.file}"/>

意思是 函数名是convert.basedir,代表着ant文件同级目录的路径


<property name="dir.convert.root" value="${convert.basedir}/.."/>

函数名是"dir.convert.root,值是convert.basedir的上一级目录


使用sqlplus有2种方式,

1是先定义登录函数

<target name="check.init" depends="init" description="">
<fail unless="cfg.user"/>
<fail unless="cfg.password"/>
<fail unless="cfg.service"/>
<property name="cfg.login" value="${cfg.user}/${cfg.password}@${cfg.service}"/>
</target>

使用sqlplus时调用这个函数

  <target name="check1"  depends="check.init" description="check1">
    <sqlplus logon="${cfg.login}" script="${dir.convert.sql.validation}/Validation.sql"/> 
    </target>


depends指的是依赖,就是运行这个target之前,依赖于哪个target要先运行,在运行时,之要运行最后的target,它会自动把前面的depends的依赖target都运行了。


第2中,直接登录

  <target name="check1"  depends="check.init" description="check1">
    <sqlplus logon="${cfg.user}/${cfg.password}@${cfg.service}" script="${dir.convert.sql.validation}/Validation.sql" />
    </target>


可以最后写一个target和project同名,使用它来调用前面写的这些功能。

  <target name="plateres" >----------------这里要和project同名
<antcall target="check1"/>-------这里是要调用target的name,会自动把它的依赖一起调用,什么依赖的依赖的依赖
</target>


原创粉丝点击