在Maven中使用自定义属性的主要方式有两种:
- 在pom.xml中定义元素:
<project>
...
<properties>
<my.prop>some value</my.prop>
</properties>
</project>
- 在settings.xml中定义profile,并在其中定义属性:
<settings>
...
<profiles>
<profile>
<id>dev</id>
<properties>
<my.prop>dev_value</my.prop>
</properties>
</profile>
</profiles>
</settings>
然后在pom.xml中调用:
<project>
...
<properties>
<prop_value>${my.prop}</prop_value>
</properties>
</project>
要激活settings.xml中定义的profile,需要在命令行指定:-P profile_id。
properties元素用于定义常量,这些常量可以在pom.xml的其他地方引用。我们可以在properties中定义版本号、文件路径等信息,这样如果信息变更只需要修改properties中的值, pom.xml其他地方引用该信息的地方会自动使用新值,这大大提高了pom.xml的可维护性。
来看一些示例:
在pom.xml中定义属性:
<project>
...
<properties>
<my.version>1.0.0</my.version>
</properties>
</project>
在settings.xml中定义profile并添加属性:
<settings>
...
<profiles>
<profile>
<id>dev</id>
<properties>
<my.prop>dev_value</my.prop>
</properties>
</profile>
</profiles>
</settings>
在pom.xml中调用:
<project>
...
<properties>
<prop_value>${my.prop}</prop_value>
</properties>
</project>
激活profile:
mvn compile -P dev
所以,通过Maven的自定义属性,可以轻易定义和管理变量,这使得pom.xml具有很强的可重用性和可扩展性。