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>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
<pluginManagement>
<!-- NOTE: These plugins will be removed from future versions of the super POM -->
<!-- They are kept for the moment as they are very unlikely to conflict with lifecycle mappings (MNG-4453) -->
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
</plugin>
</plugins>
</pluginManagement>
</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属性,例如:

 <properties>
<junit.version>4.8</junit.version>
<dubbo.version>2.5.3</dubbo.version>
<freemarker.version>2.3.19</freemarker.version>
<edi-un.version>0.0.1</edi-un.version>
<edi-framework.version>4.0.1</edi-framework.version>
<!-- alibaba druid -->
<druid.version>0.2.20</druid.version>
<dubbo.version>2.5.3</dubbo.version>
<zkclient.version>0.10</zkclient.version>
<!-- 缓存 -->
<jedis.version>2.2.0</jedis.version> <freemarker.version>2.3.19</freemarker.version> <!-- spring hibernate jpa begin -->
<hibernate.version>4.2.11.Final</hibernate.version>
<hibernate-validator.version>4.2.0.Final</hibernate-validator.version>
<hibernate-commons-annotations>4.0.2.Final</hibernate-commons-annotations>
<hibernate-jpa-2.0-api>1.0.1.Final</hibernate-jpa-2.0-api>
<spring.version>3.1.1.RELEASE</spring.version>
<persistence.version>1.0</persistence.version>
<javassist.version>3.12.0.GA</javassist.version>
</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查看所有的环境变量

最新文章

  1. Android UI 绘制过程浅析(五)自定义View
  2. 图解.NET Stack和Heap的本质区别
  3. ImageView的属性android:scaleType
  4. 【UVA1579】俄罗斯套娃 Matryoshka (动态规划)
  5. Robot Framework学习笔记(四)------Screenshot 库屏幕截图
  6. Activity之间的跳转和数据传输
  7. LOJ 6270
  8. Spark性能优化【Stack Overflow】
  9. Linux 系统出现电流音解决方案
  10. linux 安装ssh以及ssh用法与免密登录
  11. 【CodeChef】Querying on a Grid(分治,最短路)
  12. LDA总结 (一) 共轭分布
  13. keras学习简单线性回归【1】
  14. svn上传和下载项目
  15. lapis 1.7.0 更好的openresty 版本兼容以及安全数据库支持
  16. sqlalchemy sql express language
  17. oracle sql 命令类别
  18. c#实现统计代码运行时间
  19. 内核启动时在挂载ubi文件系统时提示UBIFS error (ubi0:0 pid 1): ubifs_read_superblock: min. I/O unit mismatch
  20. Android 屏幕切换动画

热门文章

  1. Thinkphp3.2.3加载外部类并调用类里面的方法 获取token
  2. css 网格布局简单应用
  3. NumPy数组对象
  4. vue cli搭建项目
  5. CSS3_天猫商品墙
  6. BOM 浏览器对象模型_XMLHttpRequest 对象
  7. 如何安装Magento 2.0
  8. 2019.4.1 JMeter中文乱码解决方案
  9. Collections类
  10. Python中的引用传参