A.2.7. 属性(Properties)

Maven属性和Ant中的属性一样,可以用来存放一些值。这些值可以在POM中的任何地方使用标记${X}来使用,这里X是指属性的名称。属性有五种不同的形式,并且都能在settings.xml文件中访问。

  1. env.X: 在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如,/opt/java/sdk/1.5/bin:/opt/maven/apache-maven-2.2.1/bin:/opt/ant/apache-ant-1.7.1/bin:/opt/java/sdk/current/bin:/opt/maven/2.0/bin:/opt/java/tools/maven/current/bin:/usr/kerberos/bin:/opt/java/sdk/current/bin:/opt/java/tools/ant/current/bin:/usr/local/bin:/bin:/usr/bin:/home/j2ee-hudson/bin指代了$path环境变量(在Windows上是%PATH%)。

  2. project.x:这个点(.)标记的路径,指代了POM中对应的元素值。

  3. settings.x: 这个点(.)标记的路径,指代了settings.xml中对应元素的值。

  4. Java System Properties: 所有可通过java.lang.System.getProperties()访问的属性都能在POM中使用该形式访问,如/opt/java/sdk/Sun/jdk1.5.0_12/jre

  5. x: 在<properties/>元素中,或者外部文件中设置,以${someVar}的形式使用。

Example A.7. 在settings.xml中设置${user.install} 属性

<settings xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <profiles>
    <profile>
      ...
      <properties>
        <user.install>/data/hudson-temporal-data/hudson-orchestrator-home/workspace/Book-To-Production/our-project</user.install>
      </properties>
      ...
    </profile>
  </profiles>
  ...
</settings>


如果该profile激活,属性${user.install}就可以在POM中被访问。