zoukankan      html  css  js  c++  java
  • 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还支持复用(可省很多事)。如下:

    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版本不符合要求"/>

  • 相关阅读:
    面试题系列---【字符串常用方法、数组常用方法、Number常用方法】
    面试题系列---【箭头函数和普通函数的区别?箭头函数的优缺点?】
    面试题系列---【什么是Promise,解决什么问题?Promise.all解决了什么问题?实现原理?回调地狱?】
    面试题系列---【data数据改变,页面不更新原因及解决方案】
    JavaScript课程——Day20(jQuery:使用、选择器、节点遍历操作、其他属性操作)
    JavaScript课程——Day18(本地存储、JSON方法)
    JavaScript课程——Day16(扩展原型上的方法、继承)
    JavaScript课程——Day15(编程思想、对象的读写、面向对象的创建、面向对象的案例)
    JavaScript课程——Day14(回调函数、自执行函数、闭包、递归、防抖与节流、call与apply)
    JavaScript课程——Day13(4、无缝轮播图)
  • 原文地址:https://www.cnblogs.com/ungshow/p/1366401.html
Copyright © 2011-2022 走看看