Ant入门
2016-03-08 21:06
323 查看
1.Ant的安装
在Apache官网下载最新Ant环境变量设置:
系统变量:ANT_HOME=d:\ant_home\apache-ant-1.70在
用户变量:中加入Ant 的bin 目录:path=%ANT_HOME%\bin
测试ant是否安装成功:进入cmd运行Ant.出现如下提示,说明安装成功.
E:\srcgen\webwork>ant
Buildfile: build.xml does not exist!
Build failed
2.Ant入门
Ant的构建文件类型是xml,默认读取的是build.xml文件,如果需要指定文件,可以用如下命令ant –f hello.xml或者ant –file hello.xml或者ant –buildfile hello.xml。下面来一段简单的构建文档。<?xml version="1.0" encoding="UTF-8" ?> <project name="HelloWorld" default="run" basedir="."> <property name="src" value="src"/> <target name="init"> <echo message="Hello,init"/> </target> <target name="run" depends="init"> <echo message="Hello,run"/> </target> <target name="testif" if="src"> <echo message="Hello,if"/> </target> <target name="testunless" unless="src"> <echo message="Hello,unless"/> </target> </project>
打开cmd,进入文件所在目录,输入ant run,回车。输出如下图:
这里run代表了一个任务,而这个任务又依赖了另外一个任务,所以会先执行init任务。如果不知道target里面定义了哪些可以执行的命令,输入ant -projecthelp会提示出这些命令。
Ant的关键元素project、target、property。
1.project元素
project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。接下来向读者展示一下project元素的各属性。
name属性:用于指定project元素的名称。
default属性:用于指定project默认执行时所执行的target的名称。例如,本例输入ant也会输出相应结果。
basedir属性:用于指定基路径的位置。该属性没有指定时,使用Ant的构件文件的所在目录作为基准目录,即’.’。
2.target元素
它为Ant的基本执行单元,它可以包含一个或多个具体的任务。多个target可以存在相互依赖关系。
name属性:指定target元素的名称,这个属性在一个project元素中是唯一的。我们可以通过指定target元素的名称来指定某个target。
depends属性:用于描述target之间的依赖关系,若与多个target存在依赖关系时,需要以“,”间隔。Ant会依照depends属性中target出现的顺序依次执行每个target。被依赖的target会先执行。
if属性:用于验证指定的属性是否存在,若不存在,所在target将不会被执行。
unless属性:与if属性相反。
description属性:该属性是关于target功能的简短描述和说明。
3.property元素
该元素就是参数的定义,也可以引用文件,引用方法与properties文件完全一样。
all.properties的内容:
src1=D:\\study\\ant\\src1 src2=D:\\study\\ant\\src2 src3=D:\\study\\ant\\src3
build.xml中的引用:
<property file="all.properties" /> <target name="run"> <ant dir="${src1}" target="run" /> <ant dir="${src2}" target="run" /> <ant dir="${src3}" target="run" /> </target>
Ant还提供了一些它自己的内置属性:
basedir:project基目录的绝对路径;
ant.file:buildfile的绝对路径,即”${basedir}/build.xml”;
ant.version:Ant的版本,在本文中,值为1.9.1;
ant.project.name:当前指定的project的名字,即project的name属性的值;
ant.java.version:Ant检测到的JDK的版本,在上例运行结果中可看到为1.7。
3.Ant中常用task
输出信息<echo message=”xxx” />或者<echo>yyyy</echo>
引入一个xml 文件
<import file="../build2.xml"/>
拷贝
<!-- 拷贝文件 --> <copy file="myfile.txt" tofile="mycopy.txt"/> <!-- 拷贝一个文件到指定目录 --> <copy file="myfile.txt" todir="../some/other/dir"/> <!-- 拷贝一个目录集合到指定目录 --> <copy todir="../dest/dir"> <fileset dir="src_dir" excludes="**/*.java" includes="**/Test.java"/> </copy> <!-- 拷贝一个目录集合到指定目录并且将文件重命名为.bak --> <copy todir="../backup/dir"> <fileset dir="src_dir"/> <globmapper from="*" to="*.bak"/> </copy> <!-- 拷贝并替换@TITLE@为Foo Bar --> <copy todir="../backup/dir"> <fileset dir="src_dir"/> <filterset> <filter token="TITLE" value="Foo Bar"/> </filterset> </copy>
copydir和copyfile与copy具有同样的功能,老版本中的任务,不推荐使用。
<copyfile src="test.java" dest="subdir/test.java"/> <copydir src="../resources" dest="${dist}" includes="**/*.java"/>
删除
<!-- 删除文件 --> <delete file="/lib/ant.jar"/> <!-- 删除目录 --> <delete dir="lib"/> <!-- 删除指定文件 --> <delete> <fileset dir="." includes="**/*.bak"/> </delete> <!-- 删除svn文件,svn文件默认是excludes的 --> <delete defaultexcludes="false"> <fileset dir="src" includes="**/.svn"/> </delete>
剪切
<move todir="some/new/dir"> <fileset dir="my/src/dir"> <include name="**/*.jar"/> <exclude name="**/ant.jar"/> </fileset> </move>
重命名
<rename src="foo.jar" dest="ant-${version}.jar"/>
替换
<!-- 替换的三种方式: 1.直接在属性里面定义好value; 2.在replaceFile中定义value; 3.利用properties文件中的键值对来定义参数 --> <replace file="configure.sh" value="defaultvalue" propertyFile="source/name.properties"> <replacefilter token="token1"/> <replacefilter token="token2" value="value2"/> <replacefilter token="token3" property="property.key"/> </replace>
相关文章推荐
- JavaScript 组件之旅(三):用 Ant 构建组件
- 使用YUI+Ant 实现JS CSS压缩
- ubuntu 14.04 安装 apache ant教程
- Windows下apache ant安装、环境变量配置教程
- java ant 配置及构建项目图文教程
- Java操作Ant压缩和解压文件及批量打包Anroid应用
- ant使用指南详细入门教程
- Eclipse下配置Ant脚本并自动打包带签名的Android apk
- Java自动化工具Ant的基础使用教程
- ANT集成SVNANT访问SVN(Subversion)
- 【笔记】试玩 cocos2d-x-3.0beta on android
- 使用Ant构建SSH项目(Intellij IDEA版)
- Android ANT多渠道打包
- ant 编译报 Cannot load 63-bit SWT libraries on 32-...
- 使用Ant构建简单项目
- Android项目导出jar包的小技巧
- Ant编译android,并Proguard代码混淆,v4混淆配置
- Ant基础知识
- Ant小总结