明河 <minghe36@126.com>
ANT简介
 用于自动化批处理项目脚本的编译、打包、
  测试等;
 Ant是流程脚本引擎,不是脚本语言;
 Ant完成任务依赖于xml格式的构建文件;
 Ant是开源的、跨平台的、易用的。
为什么前端需要ant
 脚本庞大,按模块拆成多个子js文件,你
  需要个工具在发布时合并成1个js文件;
 希望有个工具可以自动压缩脚本;
 快速生成jsdoc文档;
 快速转移/删除指定文件;
…
应用ant维护的项目例子
Ant安装和配置
下载:http://ant.apache.org/bindownload.cgi

教程:
http://wiki.ued.taobao.net/doku.php?id=user
:ada:share:ant&s[]=ant

PS:必须安装JAVA环境
构建文件之起始
 必须是xml文件;
 默认为build.xml;
 根元素必须是project标签;
 project标签关键属性:name、default、
  basedir;
 有且仅有一个project;
构建文件之target
 一个工程允许存在多个target;
 更细的目标粒度,增强灵活性的同时,有
  利于维护;
 使用depends属性处理目标依赖。
构建文件之任务和数据元素
任务是最小的构建块,完成具体的项目工作;



数据元素,起到类似变量的作用,有二种类型。
1.特性:property标签,定义“变量”;

2.dataType:复杂数据集合。
构建文件之dataType



上述代码定义了一个文件集合(包含所有后缀是.source.js
和.source.css的文件)。
合并指定文件
 使用concat标签合并文件;
 destfile属性控制合并后文件输出路径;
 path子标签用于控制待合并的文件路径;
删除指定文件
 使用delete标签;
 File属性:待删除的文件;
 Dir属性:待删除的目录;
FileSet:文件集
 dir :文件目录
 includes :想要包含的文件集合
 excludes :想要排除的文件集合
 file :指定文件
 casesensitive :是否区分大小写
basename
获取指定文件的名称(可以排除特定文件后缀)

 file :文件路径
 property :属性名称
 suffix :删除后缀
antlib
Ant的每一个任务都定义在antlib。
命名空间为:antlib:net.sf.antcontrib
java程序源码必有net/sf/antcontrib/antlib.xml
Ant调用java程序
使用ant压缩文件
构建项目完整发布文件
properties配置文件
 在根目录下新建build.properties文件;
 加个时间戳配置:timestamp =
  20110808;
 在build.xml中引入该配置文件:
  <property file="build.properties" />
 build.properties文件内的property将覆盖
  build.xml中的同名property值。
完成build.xml
   修改文件的combines.dir目录,指向时间
    戳文件目录,该目录下就是指定日期发布
    的项目文件。
Ant与jsdoc
<taskdef name="jsdoctoolkit"
            classname="uk.co.darrenhurley.ant.tasks.JsDocToolkit"
            classpath="${jsdoc.dir}/jsdoc-toolkit-ant-task-
1.1.2.jar;${jsdoc.dir}/java/classes/js.jar"
           ></taskdef>
     <jsdoctoolkit template="jsdoc" jsdochome="${jsdoc.dir}/"
outputdir="${output.dir}/" inputdir="${src.dir}" encoding="gbk">

    </jsdoctoolkit>
END

Ant构建工具快速入门