内置属性
主要有两个常用的属性${basedir}表示项目的根目录,即包含pom.xml文件的目录;$[version]表示项目版本。
POM属性
使用该类属性引用POM文件中对应元素的值。例如${project.artifactId}就对应了元素的值,常用的POM属性包括:
${project.build.sourceDirectory} 项目的主源码目录,默认为src/main/java
${project.build.testSourceDirectory} 项目的测试源码目录,默认为src/test/java
${project.build.directory} 项目输出构建目录,默认为target/
${project.outputDirectory} 项目主代码编译输出目录,默认为target/classes/
${project.testOutputDirectory} 项目测试代码编译输出目录,默认为target/test-classes
${project.groupId} 项目的groupId
${project.artifactId} 项目的artifactId
${project.version} 项目的版本号,与${version}等价
${project.build.finalName} 项目打包输出文件的名称,默认为${project.artifactId}-${project.version}
自定义属性
在POM文件中元素下定义的属性。例如
<project>
...
<properties>
<myprop>hello</myprop>
</properties>
...
</proeject>
在POM文件的其他地方使用${myprop}来引用myprop属性的值。
Settings属性
与POM属性相同,可以用settings开头的属性引用settings.xml文件中XML元素的值,例如${settings.localRepository}
Java系统属性
所有的Java系统属性都可以使用Maven属性引用,例如${user.home}指向了用户目录。mvn help:system 命令可以查看所有的Java系统属性
Windows中可以通过mvn help:system findStr /C:"user.home" 改命令会查出所有包含user,home的行
mvn help:system find "user.home" find与findStr类似,只是不需要/C:
环境变量属性
所有环境变量都可以使用env.开头的Maven属性引用。例如${env.JAVA_HOME}表示JAVA_HOME环境变量的值。
mvn help:system 命令可以查看所有的环境变量。该命令执行结果如下所示,其中包括系统属性和环境变量。
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-help-plugin:3.4.0:system (default-cli) @ standalone-pom ---
[INFO]
================================================&#