-

Ant 属性文件

当你只需要对小部分属性进行设置时,可以选择直接在构建文件中设置。然而,对于大项目,最好将设置属性的信息存储在一个独立的文件中。

存储属性信息在一个独立的文件中将会提供以下好处:

  • 它可以让您重复使用相同的构建文件,该文件在不同的执行环境中使用不同的属性设置。例如,构建属性文件在 DEV , TEST , 和 PROD 环境中可以独立地被维护。
  • 当你事先不知道属性的值时(例如,在一个实际的环境中),这样处理是有益的。这样允许你在知道属性值后,在其他环境中执行生成 (build) 操作。

这里没有硬性规定,但是一般情况下,属性文件都被命名为 build.properties, 并且与 build.xml 存放在同一目录层。 你可以基于部署环境 ——比如: build.properties.devbuild.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.
buildversion=3.3.2

注意到上面的练习中,sitename 是一个自定义属性,执行后映射到一个地址为 “wiki.” 的网站上。你可以用这种方式声明任意数量的属性。在上面的例子中,还有一个自定义属性 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 属性。