Java构建工具 ANT 简明教程


一、为什么使用ANT

当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。

概念到处都是,随处可查。ant就是一个构建工具,又不局限于构建。

什么是构建?

形象来说,就是把代码从某个地方拿来,编译,再拷贝到某个地方去运行等等操作。

什么叫不局限于构建?

ant主要用来做构建,但它能做的还有很多,可能你用了很久,依然不知道它到底有多少功能。ant插件让ant的功能丰富多彩,例如我们后面演示的“生成hibernate映射文件,配置文件”等

准备工作:

1、安装jdk,配置java_home,path,class_path。如果你连这些还不清楚,那就先不要学ant了。

2、下载解压ant,搜ant,官网下载,然后解压即可。我这里用的是1.9.0

3、设置ant_home,path中添加ant_home下的bin

4、开始-运行-cmd-ant-回车

如果看到Buildfile:build.xml does not exist! bulid failed

那么表示ant安装成功!

如何在 Linux 服务器上安装 apache ant?

Apache Ant 的详细介绍下载见

Android 编译工具 Ant 

二、ANT测试

1、基本元素

bulid.xml

<?xml version="1.0" encoding="GBK"?>
<project name="ant测试" default="getBaseDir"  basedir="D:\antTest">
 
 
 <!--基本元素-->
 <target name="getBaseDir">
  <description> 
          the first example! 
        </description> 
  <echo message="hello world!" />
 </target>
 
 <target name="targetA" if ="ant.version"> 
        <echo message ="Java Version: ${ant.version}"/> 
    </target> 
 
 <target name="targetB" if ="ant.java.version"> 
        <echo message ="Java Version: ${ant.java.version}"/> 
  <echo message ="Java Version: ${ant.file}"/> 
  <echo message ="Java Version: ${ant.version}"/> 
    </target>
 
 
    <target name="targetC"  depends ="targetA" unless ="anotherTarget" > 
        <description> 
            show depends,unless,basedir,if
        </description> 
        <echo message ="The base dir is: ${basedir}"/> 
    </target> 
   
 <!--property-->
 <property name="name" value="jim" />
 <property name="age" value="18" />
 
 
 <target name="targetD" >
  <echo message="name:${name},age:${age}" />
 </target>

 <!--echo-->
 <target name="targetEcho">
  <echo message="Hello,ANT" file="herfile/hello.log" append="true" />
 </target>
 
</project>

project 元素是 Ant 构件文件的根元素, Ant 构件文件至少应该包含一个 project 元素,否则会发生错误。在每个 project 元素下,可包含多个 target 元素。

1) name 属性

用于指定 project 元素的名称。

2) default 属性

用于指定 project 默认执行时所执行的 target 的名称。

3) basedir 属性

用于指定基路径的位置。该属性没有指定时,使用 Ant 的构件文件的附目录作为基准目录。

target 元素

target为Ant的基本执行单元,它可以包含一个或多个具体的任务。多个target 可以存在相互依赖关系。它有如下属性:

1) name 属性

指定 target 元素的名称,这个属性在一个 project 元素中是唯一的。我们可以通过指定 target 元素的名称来指定某个 target 。

2) depends 属性

用于描述 target 之间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。 Ant 会依照 depends 属性中 target 出现的顺序依次执行每个 target 。被依赖的 target 会先执行。

3) if 属性

用于验证指定的属性是否存在,若不存在,所在 target 将不会被执行。

4) unless 属性

该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。

5) description 属性

该属性是关于 target 功能的简短描述和说明。

property 元素

property元素可看作参量或者参数的定义,project 的属性可以通过 property 元素来设定,也可在 Ant 之外设定。若要在外部引入某文件,例如 build.properties 文件,可以通过如下内容将其引入:

<property file=” build.properties”/>

property 元素可用作 task 的属性值。在 task 中是通过将属性名放在“ ${ ”和“ } ”之间,并放在 task 属性值的位置来实现的。

接下来请看第2页:

  • 1
  • 2
  • 下一页

相关内容