Maven 学习笔记-maven属性

本文深入解析Maven的六类属性,包括内置属性、POM属性、自定义属性、Settings属性、Java系统属性及环境变量属性,阐述它们在构建过程中的作用与应用。

Maven有六类属性:

1)内置属性

主要有两个常用内置属性

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

${version}:表示项目版本;

2)POM属性

${M2_HOME}/lib/maven-model-builder-3.2.3.jar/org/apache/maven/model/pom-4.0.0.xml

.....
1
<build> 2 <directory>${project.basedir}/target</directory> 3 <outputDirectory>${project.build.directory}/classes</outputDirectory> 4 <finalName>${project.artifactId}-${project.version}</finalName> 5 <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory> 6 <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> 7 <scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory> 8 <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory> 9 <resources> 10 <resource> 11 <directory>${project.basedir}/src/main/resources</directory> 12 </resource> 13 </resources> 14 <testResources> 15 <testResource> 16 <directory>${project.basedir}/src/test/resources</directory> 17 </testResource> 18 </testResources> 19 <pluginManagement> 20 <!-- NOTE: These plugins will be removed from future versions of the super POM --> 21 <!-- They are kept for the moment as they are very unlikely to conflict with lifecycle mappings (MNG-4453) --> 22 <plugins> 23 <plugin> 24 <artifactId>maven-antrun-plugin</artifactId> 25 <version>1.3</version> 26 </plugin> 27 <plugin> 28 <artifactId>maven-assembly-plugin</artifactId> 29 <version>2.2-beta-5</version> 30 </plugin> 31 <plugin> 32 <artifactId>maven-dependency-plugin</artifactId> 33 <version>2.8</version> 34 </plugin> 35 <plugin> 36 <artifactId>maven-release-plugin</artifactId> 37 <version>2.3.2</version> 38 </plugin> 39 </plugins> 40 </pluginManagement> 41 </build>
....

用户可以使用该属性引用POM文件中对应元素的值。常用的POM属性包括

${project.build.sourceDirectory}:项目的主源码目录,默认为src/main/java

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

${project.build.directory}:项目构建输出目录,默认为target/

${project.outputDirectory}:项目主代码编译输出目录,默认为target/

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

${project.groupId}:项目的groupId

${project.artifactId}:项目的artifactId

${project.version}:项目的version,与${version}等价

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

3)自定义属性

用户可以在POM的<properties>元素下自定义Maven属性,例如:

 1 <properties>
 2         <junit.version>4.8</junit.version>
 3         <dubbo.version>2.5.3</dubbo.version>
 4         <freemarker.version>2.3.19</freemarker.version>
 5         <edi-un.version>0.0.1</edi-un.version>
 6         <edi-framework.version>4.0.1</edi-framework.version>
 7         <!-- alibaba druid -->
 8         <druid.version>0.2.20</druid.version>
 9         <dubbo.version>2.5.3</dubbo.version>
10         <zkclient.version>0.10</zkclient.version>
11         <!-- 缓存 -->
12         <jedis.version>2.2.0</jedis.version>
13 
14         <freemarker.version>2.3.19</freemarker.version>
15 
16         <!-- spring hibernate jpa begin -->
17         <hibernate.version>4.2.11.Final</hibernate.version>
18         <hibernate-validator.version>4.2.0.Final</hibernate-validator.version>
19         <hibernate-commons-annotations>4.0.2.Final</hibernate-commons-annotations>
20         <hibernate-jpa-2.0-api>1.0.1.Final</hibernate-jpa-2.0-api>
21         <spring.version>3.1.1.RELEASE</spring.version>
22         <persistence.version>1.0</persistence.version>
23         <javassist.version>3.12.0.GA</javassist.version>
24     </properties>

4)Settings属性

与POM属性同理,用户使用以setting.开头的属性引用settings.xml文件中XML元素的值,如常用的${settings.localRespository}指定用户本地仓库的地址

5)Java系统属性

所有Java系统属性都可以使用Maven属性引用,例如${user.home}指向了用户目录。用户可以使用mvn  help:system查看所有的Java系统属性

6)环境变量属性

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

 

转载于:https://www.cnblogs.com/ccxxu1989/p/10576781.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值