最近在做应用的全量包和升级包打包脚本,需要用到逻辑判断,主要体现在2处
1、判断是制作内部使用包,还是外部集成使用包。
注:这两个包在配置和代码上有些区分
2、做升级包时,需要判断是否有java源代码的更新,如有更新,则编译源代码制作jar包。没有更新,则忽略编译此步。
下面我就说说ant怎么使用逻辑判断和怎么设置其值。
条件值的设置有2中方式
1、使用condition标签
例1:
<condition property="update.qxkz.src"> <and> <available file="${qxkz.update.dir}/src" type="dir" /> </and> </condition> <condition property="update.infor.src"> <and> <available file="${infor.update.dir}/src" type="dir" /> </and> </condition>
两个条件非常简单,判断目录下是否有文件存在。
例2:
<condition property="update.src"> <or> <istrue value="${update.qxkz.src}"/> <istrue value="${update.infor.src}"/> </or> </condition>
条件值还可以引用。
使用样例如下:
<target name="package" depends="setlib" description="打jar包" if="update.src">
2、利用ant 命令的参数
例:ant -f build_gt3_update.xml -Ddw=dw buildwar
-D为ant命令设置参数的使用。
dw 为参数名,取值可随意设置。我到没有试过值为false时会什么效果,大家有兴趣可以尝试下。
此参数使用跟上边一样
<target name="copy_dw" depends="" description="复制对外的文件" if="${dw}">
使用逻辑判断
ant脚本中逻辑判断的使用主要体现在 target标签的if属性上。
例:
<target name="copy_dw" depends="" description="复制对外的文件" if="${dw}">
如果depends设置有值,也不影响这个依赖链的正确运行。如果dw=false,则会把此依赖传递下去。