Maven属性和Ant中的属性一样,可以用来存放一些值。这些值可以在POM中的任何地方使用标记${X}来使用,这里X是指属性的名称。属性有五种不同的形式,并且都能在settings.xml文件中访问。
-
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%
)。 -
project.x
:这个点(.)标记的路径,指代了POM中对应的元素值。 -
settings.x
: 这个点(.)标记的路径,指代了settings.xml中对应元素的值。 -
Java System Properties: 所有可通过
java.lang.System.getProperties()
访问的属性都能在POM中使用该形式访问,如/opt/java/sdk/Sun/jdk1.5.0_12/jre
。 -
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中被访问。