Ant 属性文件
当你只需要对小部分属性进行设置时,可以选择直接在构建文件中设置。然而,对于大项目,最好将设置属性的信息存储在一个独立的文件中。
存储属性信息在一个独立的文件中将会提供以下好处:
- 它可以让您重复使用相同的构建文件,该文件在不同的执行环境中使用不同的属性设置。例如,构建属性文件在 DEV , TEST , 和 PROD 环境中可以独立地被维护。
- 当你事先不知道属性的值时(例如,在一个实际的环境中),这样处理是有益的。这样允许你在知道属性值后,在其他环境中执行生成 (build) 操作。
这里没有硬性规定,但是一般情况下,属性文件都被命名为 build.properties, 并且与 build.xml 存放在同一目录层。 你可以基于部署环境 ——比如: build.properties.dev 和 build.properties.test 创建多个 build.properties 文件。
在下面的例子中展示了 build.xml 文件和与之相联系的 build.properties文件:
build.xml
<?xml version="1.0"?>
<project name="Hello World Project" default="info">
<property file="build.properties"/>
<target name="info">
<echo>Apache Ant version is ${ant.version} - You are at ${sitename} </echo>
</target>
</project>
build.properties
# The Site Name
sitename=wiki.w3cschool.cn
buildversion=3.3.2
注意到上面的练习中,sitename 是一个自定义属性,执行后映射到一个地址为 “wiki.w3cschool.cn” 的网站上。你可以用这种方式声明任意数量的属性。在上面的例子中,还有一个自定义属性 buildversioin,它表明了当前构建的版本号。
除了以上提到的两个属性, Ant 还提供了其他内置属性,在前一章节中已经提到,但是下面我们再一次给出相关属性。
属性 | 描述 |
ant.file | 表示 buildfile 的绝对路径。 |
ant.version | 表示 Ant 的版本。 |
basedir | 表示 project 基目录的绝对路径。 |
ant.java.version | 表示 Ant 检测到的 JDK 的版本。 |
ant.project.name | 表示当前指定的 project 的名字。 |
ant.project.default-target | 表示当前项目的默认目标。 |
ant.project.invoked-targets | 表示被当前项目调用的一系列用逗号分隔开的目标。 |
ant.core.lib | 表示 Ant jar 文件的绝对路径。 |
ant.home | 表示 Ant 安装的根目录。 |
ant.library.dir | 表示 Ant 函数库,一般情况下为 ANT_HOME/lib 文件的根目录。 |
在这一章节的例子中,我们用到的 Ant 内置属性是 ant.version 属性。