属性是理解POM基础知识的最后一部分。Maven属性是值占位符,就像Ant中的属性一样。它们的值可以通过使用${X}符号在POM中的任何地方访问,其中X是属性。或者它们可以被插件用作默认值,例如
<project>
...
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
...
</project>
它们有五种不同的风格:
1.env.X:在变量前加上“ env”。将返回外壳的环境变量。例如,${env.PATH}包含PATH环境变量。
注意:尽管环境变量本身在Windows上不区分大小写,但是属性的查找区分大小写。换句话说,尽管Windows Shell为%PATH%和返回相同的值%Path%,但Maven区分了
e
n
v
.
P
A
T
H
和
{env.PATH}和
env.PATH和{env.Path}。为了可靠起见,将环境变量的名称标准化为全部大写;
2.project.x:POM中带点号(.)的路径将包含相应元素的值。例如:1.0可通过访问${project.version};
3.settings.x:中的点号(.)表示的路径settings.xml将包含相应元素的值。例如:false可通过访问${settings.offline}。
4.Java系统属性:所有可通过java.lang.System.getProperties()访问的属性都可以作为POM属性使用,例如${java.home}。
5.x:在POM中的元素内设置。的值value可以用作${someVar}。