Maven内置属性及使用
Maven共有6类属性:
内置属性
Maven预定义,用户可以直接使用。
- ${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属性可以引用到pom.xml文件对应元素的值,这些变量都由前缀project
引用。
- ${project.build.directory}:表示主源码路径;
- ${project.build.sourceEncoding}:表示主源码的编码格式;
- ${project.build.sourceDirectory}:表示主源码路径;
- ${project.build.finalName}:表示输出文件名称;
- ${project.version}:表示项目版本,与${version}相同;
- ${project.groupId}:表示项目groupId;
- ${project.artifactId}:表示项目artifactId;
- ${project.packaging}:打包类型,缺省为jar;
- ${project.build.finalName}:产出物名称,缺省为${project.artifactId}-${project.version}
自定义属性
在pom.xml文件的<properties>
标签下定义的Maven属性。
<project>
<properties>
<jdk.version>1.8</jdk.version>
</properties>
</project>
在其他地方使用${jdk.version}
使用该属性值。
settings.xml文件属性
与pom属性同理,用户使用以settings.
开头的属性引用settings.xml文件中的XML元素值。
- ${settings.localRepository}:表示本地仓库的地址;
Java系统属性
所有的Java系统属性都可以使用Maven属性引用。
使用mvn help:system
命令可查看所有的Java系统属性,System.getProperties()
可得到所有的Java属性。
- ${user.home}:表示用户目录;
- ${path.separator}:系统文件分隔符,linux下是冒号
:
,windows下是分号;
; - ${user.dir}:用户的当前工作目录;
环境变量属性
所有的环境变量都可以用以env.
开头的Maven属性引用,使用mvn help:system
命令可查看所有环境变量。
- ${env.JAVA_HOME}:表示JAVA_HOME环境变量的值;