内置属性
${basedir}表示项目根目录,即包含pom.xml文件的目录;
${version}表示项目版本;
${project.basedir}同${basedir};
${project.baseUri}表示项目文件地址;
${maven.build.timestamp}表示项目构件开始时间;
${maven.build.timestamp.format}表示属性${maven.build.timestamp}的展示格式,默认值为yyyyMMdd-HHmm,可自定义其格式,其类型可参考java.text.SimpleDateFormat。用法如下:
<properties> <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format> </properties> |
POM属性
用户可以使用该类属性引用POM文件中对应元素的值。如${project.artifactId}就对应了<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/testclasses/
- ${project.groupId}:项目的groupId
- ${project.artifactId}:项目的artifactId
- ${project.version}:项目的version,与${version} 等价
- ${project.build.finalName}:项目打包输出文件的名称,默认为${project.artifactId}-${project.version}
自定义属性
(在pom.xml文件的<properties>标签下定义的Maven属性)
<project> <properties> <my.pro>abc</my.pro> </properties> </project> |
在其他地方使用${my.pro}使用该属性值。
当然除了在pom.xml使用自定义属性外,还可以在properties文件中使用,比如项目文件src/main/resources/jdbc.properties的文件,写入如下所示: 参考链接 (替换需要使用过滤的概念 https://www.cnblogs.com/forerver-elf/p/6257395.html)
jdbc.driverClassName=${jdbc.driverClassName} jdbc.url=${jdbc.url} jdbc.username=${jdbc.username} jdbc.password=${jdbc.password} jdbc.validationQuery=${jdbc.validationQuery}
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
<filtering>true</filtering>
</testResource>
<testResources>
settings.xml文件属性
(与pom属性同理,用户使用以settings.开头的属性引用settings.xml文件中的XML元素值)
${settings.localRepository}表示本地仓库的地址;
Java系统属性
(所有的Java系统属性都可以使用Maven属性引用)
使用mvn help:system命令可查看所有的Java系统属性;
System.getProperties()可得到所有的Java属性;
${user.home}表示用户目录;
环境变量属性
(所有的环境变量都可以用以env.开头的Maven属性引用)
使用mvn help:system命令可查看所有环境变量;
${env.JAVA_HOME}表示JAVA_HOME环境变量的值;