自动构建工具Ant深入剖析(二) Ant属性、目标、依赖深度详解
<property name="metal-database" value="${metal}.db"/>location属性:
属性经常用于引用文件系统上的文件或目录,但是对于使用不同路径分隔符(例如,/ 与 \)的平台来说,这样可能在跨越不同平台时导致问题。Ant 的 location 属性专门设计用于以平台无关的方式包含文件系统路径。像下面这样使用 location 来代替value:
<property name="database-file" location="archive/databases/${metal}.db"/>
<property name="database-file" location="archive\databases\${metal}.db"/>
定义依赖关系:
生成一个项目一般需要许多步骤 —— 例如首先要编译源代码,然后将它打包为 Java 归档文件
(Java Archive File,JAR)。这其中许多步骤都具有清楚定义的顺序 —— 例如,在编译器从源代码生成类文件之前,您不能打包类文件。与顺序指定 target 所不同的是,Ant 采用一种更灵活的方法来定义 依赖关系 。每个目标的定义依据的是在它能够执行之前必须完成的其他所有目标。这是使用 target 元素的 depends 属性来实现的
<target name="init"/>
<target name="preprocess" depends="init"/>
<target name="compile" depends="init,preprocess"/>
<target name="package" depends="compile"/>
注意目标出现在生成文件中的顺序并不重要:执行顺序是由depends 属性唯一确定的。