ant -buildfile build.xml compile
ant -quiet:安静模式,不给出任何输出。
ant -emacs:简单模式,不显示任务名称。
ant -projecthelp:获取项目信息。
Javac java jar javadoc tstamp touch mkdir delete move ear copy核心内置任务
可以由命令行进行显示的调用,也可以在内部使用如可以直接调用ant init、ant compile等
如果构建失败了 ant -verbose 获取更加详细的构建信息,以解决问题
ant -diagnostics
执行ant compile archive会怎么样?Ant依次执行每个目标和其依赖目标,即Ant的执行顺序是init compile init compile archive,由于其依赖性检查的阻止,第二次的init和compile并未真正的执行
如果一个目标依赖与多个其他目标,需要将它们都写到依赖属性中,例如:depents=”compile,test”。
如果在执行过程中两个目标共享同一个目标,则先导目标只被执行一次。
运行程序:
普通执行该类的方法是:
java ?Ccp build/class com.neusoft.test.AntTest args1 args2
而我们使用Ant的任务来执行它仅仅需要增加一个任务,好处在于:
让用于执行的目标依赖与编译的目标,确保运行最新版本
易于传递复杂参数
设置classpath更方便
在Ant自身的JVM中运行,载入更快
增加一个新的目标:
name="execute" depends="compile">
classname="com.neusoft.test.AntTest"
classpath="build/classes">
value="a"/>
value="b"/>
file="."/>
最后一个参数是file=”.”,表示传入的参数是一个目录,为文件绝对路径。
最终的构建文件,添加了description属性。
version="1.0" ?>
name="secondbuild" default="execute">
Compiles and runs a simple program
name="init">
dir="build/classes" />
dir="dist" />
name="compile" depends="init"
description="Compiles the source code">
srcdir="src" destdir="build/classes"/>
name="archive" depends="compile"
description="Creates the JAR file">
destfile="dist/project.jar" basedir="build/classes"/>
name="clean" depends="init"
description="Removes the temporary directories used">
dir="build" />
dir="dist" />
name="execute" depends="compile"
description="Runs the program">
level="warning" message="running" />
classname="org.example.antbook.lesson1.Main"
classpath="build/classes">
value="a"/>
value="b"/>
file="."/>