码迷,mamicode.com
首页 > 其他好文 > 详细

ant使用总结(二):相关命令说明

时间:2015-04-15 13:35:18      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

在ant安装目录的manual目录是ant的说明文档,打开index.xml,点击Using Apache 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安装目录。
下载地址:

我这里是把ant-contrib-1.0b3.jar放到了ant安装目录的lib目录下。
示例代码:
运行效果:
技术分享

替换指定字符串


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

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

相关文章:

ant使用总结(二):相关命令说明

标签:

原文地址:http://blog.csdn.net/linchaolong/article/details/45057257

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!