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>