Maven变量属性及使用

本文深入解析Maven的7类属性,包括内置属性、POM属性、自定义属性、settings.xml文件属性、Java系统属性、环境变量属性及父级工程属性。详细介绍了各类属性的用途与配置方法,如${basedir}
摘要由CSDN通过智能技术生成
Maven共有7类属性:

内置属性(Maven预定义,用户可以直接使用)

${basedir}表示项目根目录,即包含pom.xml文件的目录;

${version} 等同于 ${project.version} 或者 ${pom.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文件对应元素的值)

 - 所有pom中的元素都可以用 project.
 - 例如${project.artifactId}对应了<project><artifactId>元素的值
 - 常用的POM属性包括:

${project.build.directory}表示主源码路径,项目构建输出目录,默认为target/;

${project.build.sourceEncoding}表示主源码的编码格式;

${project.build.sourceDirectory}表示项目的主源码路径,默认为src/main/java/;

${project.build.outputDirectory}表示项目主代码编译输出目录,默认为target/classes/;

${project.build.finalName}表示输出文件名称,项目打包输出文件的名称,默认为${project.artifactId}${project.version}.;

${project.groupId}:项目的groupId;

${project.artifactId}:项目的artifactId.

${project.version}表示项目版本,与${version}相同;

${project.build.testSourceDirectory}:项目的测试源码目录,默认为/src/test/java/.

${project.build.testOutputDirectory}:项目测试代码编译输出目录,默认为target/testclasses/.


 

自定义属性(定义一个标签元素并设置相应的值,在pom.xml文件的<properties>标签下定义的Maven属性)

 - 在pom中<properties>元素下自定义的Maven属性

<project>

  <properties>

    <my.pro>abc</my.pro>

  </properties>

</project>

在其他地方使用${my.pro}使用该属性值。
例如:
<properties>
	<!-- swagger.version -->
	<swagger.version>2.2.2</swagger.version>
</properties>
<!--swagger2【API文档】-->
<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger2</artifactId>
	<version>${swagger.version}</version>
</dependency>
 

settings.xml文件属性(与pom属性同理,用户使用以settings.开头的属性引用settings.xml文件中的XML元素值)

 - 所有用的的 settings.xml 中的设定都可以通过 settings. 前缀进行引用

${settings.localRepository}表示本地仓库的地址;

 
Java系统属性(所有的Java系统属性都可以使用Maven属性引用)

使用mvn help:system命令可查看所有的Java系统属性;

System.getProperties()可得到所有的Java属性;

${user.home}表示用户目录;


环境变量属性(所有的环境变量都可以用以env.开头的Maven属性引用)

 - 所有环境变量都可以使用以env.开头的Maven属性引用。
 - 例如${env.JAVA_HOME}指代了JAVA_HOME环境变量的值。
 - 也可以通过命令行mvn help:system查看所有环境变量。

例如:
${env.M2_HOME } returns the Maven2 installation path. 代表Maven2的安装路径
 
${java.home } specifies the path to the current JRE_HOME environment use with relative paths to get for example:
<jvm>${java.home}../bin/java.exe</jvm>
父级工程属性

 - 上级工程的pom中的变量用前缀 ${project.parent } 引用.
 - 上级工程的版本也可以这样引用: ${parent.version }.maven的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值