Ant交互

Ant脚本在运行过程中可以与操作人员进行交互。交互时使用到的主要几个标签如下:

   < input
    
message ="All data is going to be deleted from DB continue (y/n)?"
    validargs
="y,n"
    addproperty
="do.delete" defaultvalue="n"
  
/>
  
< condition  property ="do.abort" >
    
< equals  arg1 ="n"  arg2 ="${do.delete}" />
  
</ condition >
  
< fail  if ="do.abort" > Build aborted by user. </ fail >

 

input :是指输入,message - 显示给用户的提示;validargs - 只有在用户输入validargs指定的值时,输入才是有效的。addproperty - 用户在完成一次有效的输入后,会产生一个属性,该属性的名称为addproperty的值,属性的值则为用户的输入。如果用户不做输入操作(如直接回车),则属性的值将会是defaultvalue的值。

condition:是对条件进行判断,条件判断完成后,也会产生一个属性值。属性名称为property的值,而属性的值则由condition的内部标签返回值决定,默认为ture|false,但是不仅限于这两个值,如下情况:

 

< condition  property ="do.delete"  value ="yes"  else ="no" >
    
< equals  arg1 ="n"  arg2 ="${input.value}" />
</ condition >
<!--  
    当用户的输入为n是,equals返回为ture,此是,do.delete的值会被设置为“yes”(该值由value属性指定),否则do.delete的值为被设置为no(由else属性的值指定)。也就是说,condition产生的属性的值并不仅限于true和false
 
-->

 

equals:等于判断。它有两个属性,arg1和arg2,不用说,就是判断这两个属性的值是否相等了。

此外,condition还支持其它类似的判断操作符如and、or、available、isset、istrue、isfalse、contains等等(详见http://ant.apache.org/manual/CoreTasks/conditions.html)。其中有几个需要重点讲一下(个人觉得功能还是比较有用的):

正则表达式的应用(具体如何使用正则表达式这里就不说了,强大但复杂,可以写一部新华字典出来)

1.matches:先看个例子

 

< condition  property ="legal-password" >
  
< matches  pattern ="[1-9]"  string ="${user-input}" />
</ condition >
< fail  message ="Your password should at least contain one number"
      unless
="legal-password" />

其中呢,pattern就是正则表达式了,而string就是需要进行匹配的字符窜。而它还有几个有用的属性

 

casesensitive(true|false):是否区分大小写(默认为true);
singleline(true|false):单行模式,此时“.”将可以匹配换行符(默认为false);
multiline(true|false):多行模式(默认为false);

另外,在使用正则表达式时,ant还支持复用(可省很多事)。如下:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<regexp id="date.pattern" pattern="^[0123]\d-[01]\d-[12]\d\d\d$"/>

<condition property="is_expected">
  
<matches string="${today}">
    
<regexp refid="date.pattern"/>
  
</matches>
</condition>
<!-- 如上,我们就可以重复地利用一段正式表达式了,就像声明了一个变量一样 -->

 

2.antversion

这个标签是指定ant的使用版本。为也避免使用过程中产生的不兼容性(如果把jdk1.6的代码在jdk1.4上运行时没有任何异常提示,也没有任何运行结果,你肯定很不爽),所以大家写脚本时,也尽量指定一个ant的版本需求。

antversion有两个属性:
atleast(major.minor.point):在某个版本以上(如1.7.0,通常应该是你当前脚本的运行版本)都可以正常使用;
exactly(major.minor.point):只能在这个指定的版本上运行(要求很苛刻呀,可能是这个版本上有特别的功能,而刚好其前后的版本都没有)。

下面是一个例子:

< condition  property ="ant-is-exact-7" >
  
< antversion  exactly ="1.7.0" />
</ condition >

< fail  unless ="${ant-is-exact-7}"  message ="您使用的Ant版本不符合要求" />

转载于:https://www.cnblogs.com/ungshow/archive/2009/01/01/1366401.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值