在配置 pom.xml 文件时我们经常会使用到一些 Maven 中提前定义好的变量来统一控制某些关键参数,使得 pom 文件的管理更为合理。
注:在 Maven 的 3.X 版本以后,所有的 pom.* 参数全部改为了 project.*。
Maven 开发中使用的 ${XXX} 类型的参数大体可分为7类:
Built-in properties 内置参数
${basedir} 代表项目中 pom.xml 文件所在的文件夹;
${version} 代表项目的版本,等价于 ${project.version}(老版本中的 ${pom.version}),即 pom 文件中<version></version>标签内定义的版本号。
Pom/Project properties Pom/项目参数
所有在 pom 文件中定义的项目相关元素,可通过 project. 前缀(老版本中的 pom. 前缀)来进行引用。
${project.build.directory} 代表了项目编译后的目录,等同于 ${pom.project.build.directory},默认为“target”;
${project.build.outputDirectory} 代表了项目输出目录,默认为“target/classes”;
${project.name} 代表了项目名称(老版本中的 ${pom.name}),即 pom 文件中<name></name>标签内定义的项目名称;
${project.build.finalName} 代表了项目最终打包后生成文件的名称,即 pom 文件中<finalName></finalName>标签内定义的项目打包名称。
Local user settings 用户本地配置参数
在用户 settings.xml 文件中定义的元素,可通过 settings. 前缀来进行引用。
${settings.localRepository} 代表了本地仓库路径,即 settings 文件中定义的本地仓库路径。
Environment variables 环境变量
系统环境变量可以通过 env. 前缀来进行引用。
${env.M2_HOME} 代表了环境变量中配置的 M2_HOME 的值;
${java.home} 代表了环境变量中配置的 JAVA_HOME 的值。
Java system propertie Java 系统参数
同样可以引用 JVM 中定义的 Java 系统参数。
Custom properties in the POM 用户自定义参数
用户在 pom.xml 文件中可自定义参数,并进行引用。
${jdk.version} 代表了 JDK 的版本参数,即 pom 文件中<properties></properties>标签内定义的<jdk.version></jdk.version>标签中的值。
Parent Project variables 父级参数
父级 pom.xml 文件中定义的元素,可通过 parent. 前缀来进行引用。
${parent.version} 代表了 父级 pom 文件中<version></version>标签内定义的版本号。
以上7类参数为 Maven 开发中常用参数类型,可在配置 pom.xml 文件时进行引用以提供开发过程中的便利。参考来源:http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide