最早用来构建著名的Tomcat,可以看成是一个Java版本的Make。也正因为使用了Java,Ant是跨平台的。
Ant有一个构建脚本build.xml
<?xml version = "1.0"?> <project name = "Hello" default = "compile"> <target name = "compile" description = "compile the Java source code to class files"> <mkdir dir = "classes"/> <javac srcdir = "." destdir = "classes"/> </target> <target name = "jar" depends ="compile" description = "create a Jar file"> <jar destfile = "hello.jar"> <fileset dir = "classes" includes ="* * /*.class"/> <manifest> <attribute name = "Main-Class" valus = "HelloProgram"/> </manifest> <jar> </target> </project>
jar目标用来创建应用程序jar文件,该目标依赖于compile目标,后者执行的任务是创建一个名为classes的文件夹,编译当前目录的java文件至classes目录。compile目标完成后,jar目标再执行自己的任务。Ant有大量内置的用Java实现的任务,这保证了其跨平台的特质。同时,Ant也有特殊的任务exec来执行本地命令。
Ant是没有依赖管理的,所以很长一段时间Ant用户都不得不手工管理依赖。Ant用户现在可以借助Ivy管理依赖。而对Maven用户来说,依赖管理是理所当然的。Maven不仅内置了依赖管理,更有一个可能拥有全世界最多Java开源软件包的中央仓库,Maven用户无须进行任何配置就可以直接享用。