Ant build.xml核心是project根元素定义项目,内含target目标及task任务;依赖通过depends声明,属性用property复用,路径用path管理,强调“做什么”而非“怎么做”。

写 Ant 的 build.xml 文件,核心是定义一个项目(),再在里面组织若干目标(),每个目标由一系列任务()组成。它不是编程语言,而是基于 XML 的配置式构建描述——重点在于“做什么”和“依赖关系”,而不是“怎么一步步算”。
基础结构:project 和 target 是骨架
每个 build.xml 必须有且仅有一个 根元素,至少包含 name、default(默认执行的目标)、basedir(工作目录,通常用 . 表示当前目录)属性:
Compiling source code...
运行 ant(不带参数)时,Ant 会自动执行 default="compile" 指定的目标。
常用任务:copy、javac、jar、clean 最常用
实际构建 Java 项目,离不开这几个任务。它们不是内置关键字,而是 Ant 自带的“任务实现”,开箱即用:
-
—— 编译src/下的 .java 到bin/,includeantruntime="false"避免把 ant.jar 打进 classpath -
—— 把lib/下所有 jar 复制到dist/lib -
—— 把bin/打成 jar 包 -
或—— 清理输出目录
目标依赖:用 depends 控制执行顺序
Ant 不按 XML 顺序执行 target,而是靠 depends 属性声明前置条件。比如“打包前必须编译,编译前必须清理”:
此时运行 ant package,Ant 会自动先跑 clean → 再 compile → 最后 package。依赖支持多值,如 depends="init,compile,test"。
属性与路径:用 property 和 path 管理复用信息
避免硬编码路径或版本号。用 定义常量,用 组织 classpath:
-
,后面可用${src.dir} -
可外部加载 key=value 配置文件 - 在
中引用:classpathref="compile.classpath"
基本上就这些。写 build.xml 不复杂,但容易忽略依赖闭环、路径存在性检查(比如 在 前)、或 classpath 漏包。建议从一个最小可运行版本开始,逐步加功能。
