生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像的形式)。
随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本,这就变的更加重要

构建脚本
Ant根据构建脚本的描述来执行任务!构建脚本是一个xml格式的文件。最简单的构建脚本是:
<?xml version="1.0" encoding="GBK"?>
<project name="测试脚本" default="copyfile" basedir=".">
        <target name="copyfile">
                <copy file=”d:/a.txt” todir=”c:/temp” overwrite=”true”/>
        </target>
</project>
如果把以上内容放到一个build.xml文件中,然后运行ant命令,Ant将执行拷贝文件的任务!
从这个最简单的构建脚本中,我们可以知道脚本的基本编写方法:
1、        脚本的根元素是:<project>
2、        所有的任务,必须通过一个<target>标签包围,一个<target>标签,可以包含多个任务。
3、        <copy>标签描述了一个任务,这些任务必须放到一个<target>标签的内部,Ant都可以使用哪些任务呢?请参考Ant的相关文档
4、        <project>中可以包含多个<target>,如果不指定运行哪个任务(即直接运行ant命令),那么,将使用<project>标签中指定的default属性的target。
构建脚本的命名
默认命名是build.xml,如果你的构建脚本的名称是build.xml,那么你可以直接运行ant命令,如果是其它的名称,如:mybuild.xml,那么,你的命令行应该改为:ant –f mybuild.xml。
运行特定任务?
运行:ant copyfile,将运行的是被命名为copyfile的target。
Ant的路径模式?
再看下面的ant构建脚本:
<?xml version="1.0" encoding="GBK"?>
<project name="测试脚本" default="copyfile" basedir=".">
        <target name="copyfile">
                <copy todir=”c:/temp” overwrite=”true”>
                        <fileset dir=”d:”>
                                <include name=”*.txt”/>
                        </fileset>
                <copy>
        </target>
</project>
有没有注意到这个文件,跟第一个文件的变化?没错,<copy>任务的file属性变了,现在是*.txt,可能你已经意识到,这个的意思是拷贝d:盘下所有的以txt为扩展名的文件到c:/temp目录中。完全正确!但是,究竟包不包含子目录下的txt文件呢?这就需要我们了解ant中的路径模式。Ant中的路径模式非常重要,很多地方都会用到,所以,我们首先来学习的就是ant的路径模式!

你可以查看ANT_HOME/docs/manual/dirtasks.html#patterns下的文档描述!里面有最详细的说明。

简单归纳一下:

*符号,代表0个或若干个字符。?符号,代表一个字符。
**代表一颗目录树。

Ant任务
Ant 有很多内置的(即你安装完ant之后就可以直接使用的任务)任务,但是也可以添加自己定义的任务。如果你编写了自己的任务,或者你要引入一些不是ant自带的任务时,我们需要使用<taskdef>标签来定义:

比如:
           <path id="xdoclet.task.classpath">
              <fileset dir="${xdoclet.home}/lib">
                 <include name="**/*.jar"/>
              </fileset>
              <fileset dir="${xdoclet.home}/plugins">
                 <include name="**/*.jar"/>
              </fileset>
           </path>
        <taskdef
                name="xdoclet"
                classname="org.xdoclet.ant.XDocletTask"
                classpathref="xdoclet.task.classpath"
        />
在这段文本里,包含了很多内容:
1、<path>元素,是用来定义一个路径的,通常是定义classpath,因为classpath可以包括众多的jar包,也可以包括众多的目录,所以可以使用<fileset>标签或<pathelement>等标签来定义这些路径。
2、这些标签总体上来说都是轻易便能够看懂的。无需过多的解释。那个<include>标签中的name属性,正是一个路径模式,表示包括本目录(即dir 属性定义的目录。)下的所有子目录中的jar文件。

定义完任务之后,就可以来使用它了,如:

        <target name="生成Hibernate配置文件">
                <xdoclet>
                        <fileset dir="${src.dir}/com/bjsxt/oa/model">
                                <include name="**/*.java"/>
                        </fileset>                       
                        <component
                                classname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"
                                destdir="${src.dir}"
                                version="3.0"
                                hbm2ddlauto="update"
                                jdbcurl="jdbc:mysql://127.0.0.1/oa_200706"
                                jdbcdriver="com.mysql.jdbc.Driver"
                                jdbcusername="root"
                                jdbcpassword="mysql"
                                dialect="org.hibernate.dialect.MySQLDialect"
                                showsql="true"
                        />
                </xdoclet>
        </target>
具体如何使用,请参考关于这个task的相关说明文档。本文转自 :http://www.diandian315.com/thread-70-1-1.html
 

 

如何开始使用Ant

1、  确保你的机器已经安装了JDK,确保你的path环境变量中包含有java虚拟机的运行程序,确保你的环境变量中有JAVA_HOME变量

2、  下载ant并解压

3、  设置ANT_HOME环境变量,指向ant解压根目录

4、  path环境变量中,添加ANT_HOME\bin目录

5、  打开控制台,运行:ant

6、  如果能够运行ant(忽略这些异常:Buildfile: build.xml does not exist!),而不是出现诸如命令无法解释的错误,那么你的ant就安装成功了

Ant 的基本概念

Ant的运行,靠的是一个构建脚本,默认的名称叫build.xml,如果你在任何目录下运行ant命令,Ant将自动查找当前目录下有没有build.xml文件,如果有这个文件,就读取这个文件,并运行其中的默认target

解释一下以上话的意思: