Maven属性(properties)标签的使用

Posted Jim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven属性(properties)标签的使用相关的知识,希望对你有一定的参考价值。

引用官方的说明https://maven.apache.org/pom.html#Properties

Properties

属性是了解POM基础知识的最后一个要素。Maven属性是值占位符,如Ant中的属性。它们的值可以通过使用符号${X}在POM中的任何位置访问,其中X是属性。

他们有五种不同的风格:

1、env.X:使用“env”来定义变量。将返回shell的环境变量。例如,${env.PATH}包含PATH环境变量。

注意:虽然环境变量本身在Windows上不区分大小写,但查找属性区分大小写。换句话说,虽然Windows shell为%PATH%%Path%返回相同的值,但Maven区分${env.PATH}${env.Path}。对于Maven 2.1.0,为了可靠性,环境变量的名称被归一化为所有大写

2、project.x:POM中的点(.)记号路径将包含相应元素的值。例如:可以通过${project.version}访问<project><version>1.0</version></project>

3、settings.xsettings.xml中的点(.)标注路径将包含相应的元素的值。例如:<settings><offline>false</offline></ settings>可通过${settings.offline}访问。

4、Java系统属性:可通过java.lang.System.getProperties()访问的所有属性都可用作POM属性,如${java.home}

5、x:在POM中的<properties />元素中设置。<properties><someVar>value</someVar></properties>的值可以用作${someVar}

 

而在第2点中访问pom.xml文件的属性时,其实还有一些内置的变量,如下:

${project.basedir}:这引用了module/project的根文件夹(当前pom.xml文件所在的位置)

${project.build.directory}:这表示默认的目标文件夹。

${project.build.outputDirectory}:默认情况下表示target/classes文件夹。

${project.build.testOutputDirectory}:这表示默认的target/test-classes文件夹。

${project.build.sourceDirectory}:这表示默认情况下src/main/java文件夹。

${project.build.testSourceDirectory}:这表示默认情况下src/test/java文件夹。

${project.build.finalName}:默认情况下定义为${project.artifactId}-${project.version}

${project.version}:这可以在必须编写文字版本的位置使用,否则,特别是如果您在多模块构建模块间依赖关系。

${settings.localRepository}:它引用了本地存储库的位置。这是默认的${home}/.m2/repository

以上参考:https://cwiki.apache.org/confluence/display/MAVEN/Maven+Properties+Guide

 

以上是关于Maven属性(properties)标签的使用的主要内容,如果未能解决你的问题,请参考以下文章

在 Maven 配置文件中使用属性标签

pom.xml中properties标签中的maven编译器和plugin标签中的maven编译器之间的区别[重复]

struts2<s:property />标签

在 Spring Boot 的 application.properties 中使用 Maven 属性

maven:从属性文件中读取 sonar.login

Maven的构建配置文件(Build Profiles)