Apache Ant 一种基于XML的脚本语言,主要用与build。较之于makefile,有一下几个优点:
- 可移植性。Makefile依赖于shell脚本,因此高度依赖环境,也就是说,有必要为相同的工程在linux和windows上创建不同的make file文件。而ant不需要,因为ant是基于java和XML的。而且ant的功能已经被许多用户在多操作系统上进行了验证。
- 更多更有用的工具。例如,可以通过引入AntContrib对其进行扩展,以支持<if>和<for>等控制流程的task。(尽管为了保持逻辑的简单性,有时推荐过多使用控制流程的task)
- 可扩展性较强。例如Oracle的测试框架testlogic。
- Ant源文件的结构性使得测试变得更加便捷。
关于其中结构性,个人认为主要体现在一下几个方面:
- Ant的buildfile是用XML写的。每个buildfile包含一个project节点,project节点至少要有一个target节点。target节点包含若干个task节点。
- Ant支持节点之间的引用。例如,每个节点都有一个唯一的id,通过这个id,它可以被其他节点引用。
- 对于build中较为常用的PATH和CLASSPATH类型对象,Ant提供了种类丰富的结构化定义方法。支持路径,文件集合(包含特定格式的文件名,排除特定格式的文件名,文件夹,文件列表引用)
<classpath>
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
<dirset dir="${build.dir}">
<include name="apps/**/classes"/>
<exclude name="apps/**/*Test*"/>
</dirset>
<filelist refid="third-party_jars"/>
</classpath>
<path id="base.path">
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
</path>
网友评论