在Ant工具中每一个任务封装了具体要执行的功能,是Ant工具的基本执行单位。Ant工具内提供很多有用的任务,项目开发时可利用Ant工具提供的内置任务方便地实现自动构建等功能。本章主要讲解Ant工具的核心任务及其作用,便于读者根据功能选择使用。
4.1 Ant Task:Ant任务(执行多个构件文件)
如果需要在一个构件文件中通过Ant命令去执行另一个Ant项目,或者说要执行本项目的子项目的构件文件。这时Ant这个核心任务就派上用场了。简单地说Ant任务的作用就相当于在命令行通过Ant命令执行构件文件。值得注意的是Ant任务依赖于target元素,需要在某个target元素中使用,不能在target元素外独立使用。
Ant任务还可以实现类似Java程序间的继承关系,不过对于这个核心任务来说只继承property元素和reference属性。举个例子说,项目A中包含通过Ant任务去执行的项目B,而项目B中需要用到项目A中的属性C,那么可以通过设置的Ant任务中的inheritAll属性,使得在B项目中可以使用项目A中的属性C。从另一方面看,这也符合XP(极限)编程中的细分功能的思想,可以把大的项目切分为几分小项目,然后通过Ant工具进行整合。
4.1.1 Ant Task的属性及功能
Ant任务包括antfile、dir、target、output、inheritAll、inheritRefs这些属性,具体说明如下:
(1)antfile属性:在Ant任务中antfile属性的作用是指定要执行的构件文件的名称,可包含路径信息。例如,在projectA中执行projectB的构件文件。projectA的构件文件内容如下:
<?xml version="1.0"?>
<!-- 在projectA中执行projectB的构件文件 -->
<project name="porjectA" default="callProjectB">
<target name="callProjectB">
<echo message="In projectA calling projectB"/>
<ant antfile="subfile/projectB.xml" />
</target>
</project>
projectB存放于subfile目录下,具体内容如下:
hamg<?xml version="1.0"?>
<project name="porjectB" default="init">
<target name="init">