除了由POM,Maven Settings,环境变量,和Java系统属性提供的隐式变量,你还可以定义自己的专有属性。这类属性可以定义在POM或者Profile中。而这些在POM或者Maven Profile中设置的属性可以像任何其它Maven属性一样被引用。用户定义的属性可以在POM中引用,也可以由Maven Resource插件用来过滤资源。这里是一个例子,在Maven POM中定义了一些专有的属性。
Example 13.1. POM中的用户定义属性
<project> ... <properties> <arbitrary.property.a>This is some text</arbitrary.property.a> <hibernate.version>3.3.0.ga</hibernate.version> </properties> ... <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>${hibernate.version}</version> </dependency> </dependencies> ... </project>
上述例子定义了两个属性:arbitrary.property.a
和hibernate.version
。hibernate.version
在依赖声明中被引用。在属性名中使用句号作为分隔符是Maven
POM和Profile中的一个标准实践。使用句号作为分隔符没有什么特殊的地方;对Maven来说,“hibernate.version”只是一个用来获取属性值“3.3.0.ga”的一个映射键。下一个例子展示了如何在Maven
POM中的一个profile中定义一个属性。
Example 13.2. POM的Profile中的用户定义属性
<project> ... <profiles> <profile> <id>some-profile</id> <properties> <arbitrary.property>This is some text</arbitrary.property> </properties> </profile> </profiles> ... </project>
前面的例子展示了在Maven POM的profile中定义一个用户自定义属性的过程。要了解更多的关于用户定义属性和profile的信息,请看Chapter 11, 构建Profile。