标签:mode basedir let 使用 列表 token 空格 线程 任务
failonerroe
:出现错误的时候停止,缺省值"true"includeemptydirs
:是否删除空目录. 缺省"true"file
:指定文件token
:标识符号为value
:需要替换的内容<replace file="aaa.xml" token="@BUILD_MODE@" value="Mode.SIT" encoding="UTF-8" />
将.class打包为.jar
basedir
:类所在的基目录destdir
:放打包好的jar包的目录一组过滤器的集合,里面存放filter
filter
token
:过滤器的标识value
:过滤器的值一组文件的集合
dir
:指定文件夹exclude
:排除哪些文件include
:包含哪些文件<target name="zip">
<ant antfile="build.xml" dir="../../" />
<ant antfile="push_sit.xml" dir="../../" />
</target>
ant脚本自带的语法.condition
可以使用且常用的标签:
isture
: 真假判断not
:非and
:与or
:或available
:值是否可用isset
:查看值是否存在equals
:对比两个值是否一致, 标签内放置两个数值, 判断是否一致.<equals arg1="${var}" arg2="123"></equals>
filesmatch
:比较文件是否一致.ant脚本不支持循环, if, 等标签.
想要使用逻辑判断的话,需要再nat中添加依赖.ant-contrib
%ant%/lib/ant-contrib
添加该依赖之后, 然后在xml脚本中引用.
引用语法:
<taskdef resource="net/sf/antcontrib/antlib.xml" />
该语法推荐放在xml脚本的project
标签内的第一行.
放在project外面无法使用,放在靠后则前半段无法使用.
依赖contrib
默认标签为foreach
foreach内,放置三个属性:
list
:包含多个变量的列表param
:参数,每次循环从列表中取出来的值.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>
在ant脚本中, 声明属性通过<property>
标签
声明列表也同样如此.
不过在声明列表的时候, 需要注意:
list
属性,同样是一个字符串
多个属性中间,
分割.
属性之间,不能有任何
空格,否则切割出来的值也会有
空格,会影响判断结果.
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>
关于属性
<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解决依赖的时候
通常使用三种方式:
<classpath>
标签<sourcepath>
,直接使用源码.标签:mode basedir let 使用 列表 token 空格 线程 任务
原文地址:https://www.cnblogs.com/jrri/p/13159636.html