ant基本命令介绍

指定配置文件

执行ant命令,默认使用当前目录下的build.xml,可以通过-f指定配置文件。
示例:ant -f 配置文件路径

project

属性:
name:工程名称
default:默认执行的target

target

<target>是一个容器,指令集合,一个事务。
属性:
depends:依赖项,执行该target之前需要先执行的target。
name:名称

例子:
<target name="A" >
<target name="B" depends="A">
<target name="C" depends="A,B">

在命令行中执行指定target:ant targetName

property

ant中的属性,相当于定义一个变量,通过${属性名}引用。
属性:
name:变量名
value:值
file:属性配置文件路径,配置文件中要以key=value的格式配置属性。例子:​<property file="local.properties" />​
environment:给环境变量起一个别名​

例子:
<property name="a" value="aaa" />
<target name="print">
  <echo>${a}</echo>
</target>

import

包含一个文件,project的name属性值不能冲突。optional表示该文件是否可选。
<import file="test2.xml" optional="true" />

condition

condition标签可以通过条件判断去定义变量的值。

        <property name="a" value="aaa" />
        
        <!--
        <property name="b" value="bbb" />
        -->
        
        <!-- 如果设置了属性b则值为${b},否则值为${a}-->
        <condition property="val" value="${b}" else="${a}">
            <!-- 判断是否设置了指定属性 -->
            <isset property="b" />        
        </condition>


propertyfile

把属性保存到一个文件里
属性:
file:文件路径

        <propertyfile file="auto.prop">
            <!-- 保存auto.umeng.channel=${a}到文件 -->
            <entry key="auto.umeng.channel" value="${a}" />
        </propertyfile>


copy

1.拷贝单个文件到指定路径
<copy file="a.txt" tofile="b.txt" />

2.拷贝单个文件到指定目录
<copy file="a.txt " todir="../tmpdir " / >

3.拷贝一个目录到另外一个目录下
<copy todir="../destDir">
  <fileset dir="srcDir" />
</copy>

4.拷贝一批文件到指定目录下
<copy todir="../destDir">
  <fileset dir="srcDir">
    <include name="**/*.java">
    <exclude name="**/Test.java">
  </fileset>
</copy>

<copy todir="../destDir">
  <fileset dir="srcDir" excludes="**/*.java"/>
</copy>


delete

1.删除一个文件
<delete file="a.txt" />

2.删除指定目录及其子目录
<delete dir="dir" />

3.删除指定的一组文件
<delete>
  <fileset dir="." includes="**/*.bak" />
</delete>


move

1.移动或重命名一个文件
<move file="a.txt" tofile="b.txt" />

2.移动一个文件到指定目录下
<move file="a.txt" todir="destDir" />

3.移动一个目录到另一个目录下
<move todir="destDir">
  <fileset dir="srcDir" />
<move/>

4.将一组文件移动到另一个目录下
<move todir="destDir">
  <fileset dir"srcDir">
     <include name="**/*.jar" />
     <exclude name="**/ant.jar" />
  </fileset>
</move>

javac

<javac srcdir="源文件目录" destdir="编译输出目录" classpath="依赖的jar文件或类目录" debug="on表示输入日志信息,off表示不输出" includes="包含文件" excludes="忽略文件" />

java

<java classname="执行的类的全路径名">
<classpath>
<pathelement location="xxx.jar" />
<pathelement path="classpath" />
</classpath>
</java>

pathelement可以通过location属性包含一个jar或者通过path属性包含一个类路径。classpath用于设定要使用的环境变量。

jar

<jar destfile="xxx.jar" basedir="./classes" includes="./lib/**(包含lib目录下所有文件)" excludes="**/Test.class(忽略所有Test.class)" manifest="自定义mf文件命名"/>

if

if通过条件判断决定是否进行一些操作。

        <!-- 如果条件成立,则调用print -->        
        <if>
            <!-- 判断指定属性值是否为true -->
            <!--
            <istrue value="${a}" />
            -->
            
            <!-- 判断是否设置了指定属性 -->
            <!--
            <isset property="prop"/>
            -->
            
            <!-- 判断两个值是否相等 -->
            <equals arg1="${channel}" arg2="2" />
        <then>
            <antcall target="print" />
        </then>
        </if>

antcall标签用于调用一个target。

script

script标签用于插入脚本代码。
示例:获取当前时间并设置为属性time的值。

    <script language="javascript">
                <![CDATA[
                    project.setProperty("time",Math.floor((new Date()).getTime()/1000));
                ]]>
        </script>


时间戳

格式化当前时间并设置属性time。

        <tstamp>
          <format property="time"
                      pattern="yy.M.d.HHmm" />
        </tstamp>


添加自定义jar到ant的classpath

        <!-- 添加ant-contrib-1.0b3.jar到classpath -->
        <taskdef resource="net/sf/antcontrib/antcontrib.properties">
            <classpath>
                <pathelement location="${env.ANT_ROOT}\lib\ant-contrib-1.0b3.jar" />
            </classpath>
        </taskdef>


ant中实现迭代

由于ant本身不支持迭代,因此我们需要用到一个第三方的库 ant-contrib来实现迭代功能。
下载ant-contrib,并将ant-contrib-1.0b3.jar文件拷贝至ANT安装目录。
下载地址:
http://sourceforge.net/projects/ant-contrib/files/
http://pan.baidu.com/s/1pJKDeyR

我这里是把ant-contrib-1.0b3.jar放到了ant安装目录的lib目录下。
示例代码:

channel = ${channel}

运行效果:


替换指定字符串

转义符列表:
&lt;     <     小于号
&gt;     >     大于号
&amp;     &     和
&apos;     '     单引号
&quot;     "     双引号

    
    

replaceregexp标签的是支持正则表达式的。
 

参考链接

https://blog.csdn.net/linchaolong/article/details/45057257

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值