zoukankan      html  css  js  c++  java
  • Ant任务

    Ant标签解析

    target

    • failonerroe:出现错误的时候停止,缺省值"true"

    delete

    • includeemptydirs:是否删除空目录. 缺省"true"

    replace

    • 指定文件,寻找标识,替换其内容
    • file:指定文件
    • token:标识符号为
    • value:需要替换的内容
    <replace file="aaa.xml" token="@BUILD_MODE@" value="Mode.SIT" encoding="UTF-8" />
    

    jar

    .class打包为.jar

    • basedir:类所在的基目录
    • destdir:放打包好的jar包的目录

    filterset

    一组过滤器的集合,里面存放filter

    • filter
    • token:过滤器的标识
    • value:过滤器的值
      filter的使用和replace几乎是一样的

    fileset

    一组文件的集合

    • dir:指定文件夹
    • exclude:排除哪些文件
    • include:包含哪些文件

    include

    • name="** /* .jar" 需要包含的文件名.
    • ** /* .jar 文件树下所有的jar包
      • .jar 当前目下的jar包

    ant标签, antfile标记

    <target name="zip">
    	<ant antfile="build.xml" dir="../../" />
    	<ant antfile="push_sit.xml" dir="../../" />
    </target>
    

    antcontrib

    ant判断

    ant脚本自带的语法.condition
    可以使用且常用的标签:

    • isture: 真假判断
    • not:非
    • and:与
    • or:或
    • available:值是否可用
    • isset:查看值是否存在
    • equals:对比两个值是否一致, 标签内放置两个数值, 判断是否一致.
    <equals arg1="${var}" arg2="123"></equals>
    
    • filesmatch:比较文件是否一致.

    contrib

    ant脚本不支持循环, if, 等标签.
    想要使用逻辑判断的话,需要再nat中添加依赖.ant-contrib
    %ant%/lib/ant-contrib
    添加该依赖之后, 然后在xml脚本中引用.
    引用语法:

    <taskdef resource="net/sf/antcontrib/antlib.xml" />
    

    该语法推荐放在xml脚本的project标签内的第一行.
    放在project外面无法使用,放在靠后则前半段无法使用.

    for循环

    依赖contrib
    默认标签为foreach
    foreach内,放置三个属性:

    1. list:包含多个变量的列表
    2. param:参数,每次循环从列表中取出来的值.
    3. target:每次循环把参数传入目标target, 执行一次.

    在循环中可以设置parallel[平行]和maxThread[最大线程]参数.

    语法如下:

    <taskdef resouce="net/sf/antcontrib/antlib.xml" />
    <target name="foreach">
    	<foreach target="show" list="1,2,3,4" param="var" parallel="True" maxThreads="3">
    	</foreach>
    </target>
    <target name="show">
    	<echo message="${var}"></echo>
    </target>
    

    声明list

    在ant脚本中, 声明属性通过<property>标签
    声明列表也同样如此.
    不过在声明列表的时候, 需要注意:
    list属性,同样是一个字符串
    多个属性中间,分割.
    属性之间,不能有任何 空格,否则切割出来的值也会有 空格,会影响判断结果.

    contrib中常用的判断组合

    if then else
    一般搭配ant自带的值相等判断的equals

    <if>
    	<equals arg1="${var}" arg2="123" />
    	<then>
    		<echo message="${var} == 123" />
    	</then>
    	<else>
    		<echo message="${var} != 123" />
    	</else>
    </if>
    

    关于foreach/for;$@的区别

    循环的两种形式:

    • foreach
      针对的是, 转换任务的遍历方式, 通过depends标签,能够使所有的任务都能共享到该循环变量.
      antcall可以通过param标签来继承属性.

    • for
      针对的是单个任务中的遍历. 循环体需要嵌套在sequential标签内部.
      两个属性:list,param
      变量使用:@{var}

    <for list="1,2,3,4" param="var">
    	<sequential>
    		<echo message="@{var}"></echo>
    	</sequential>
    </for>
    

    关于for内switch内设置property

    关于属性
    <property>是声明属性, 无法多次设置同一个参数.
    <property>只能初始化属性,却不能改变已设置属性的值.
    如果需要改变属性, 则需要使用antcontrib内的<var>标签

    <property name="label" value="5" />
    <!-- label==5 -->
    
    <property name="label" value="4" />
    <!-- label==5 -->
    
    <var name="label" value="3"/>
    <!-- label==3 -->
    

    关于依赖

    在使用ant解决依赖的时候
    通常使用三种方式:

    1. 常规依赖,直接添加jar包即可.使用<classpath>标签
    2. 循环依赖, 使用<sourcepath>,直接使用源码.
    3. EOS普元, 找到EOS的workspace,对应的lib. 整个导入.
  • 相关阅读:
    树莓派测试摄像头
    React Native入坑记录
    2016总结及2017计划
    C#操作Excel
    IntelliJ配置SpringMVC提示“found:java.lang.String required:java.lang.String”
    opencv手工编译
    iOS webview注入JS
    C#生成exe、dll版本号自动增加
    iOS 允许po打印frame等内容
    2015总结及2016计划
  • 原文地址:https://www.cnblogs.com/jrri/p/13159636.html
Copyright © 2011-2022 走看看