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查看所有的环境变量

Maven 学习笔记-maven属性的更多相关文章

  1. Maven 学习笔记——Maven环境配置(1)

    在学习Selenium的过程中,接触到了Maven(项目管理工具),不至于学一路忘一路,左耳朵进右耳多出,还是决定边学边记录,毕竟听的不如 看的,看的不如写的吗.首先学一样东西,肯定得明确学的是什么, ...

  2. MAVEN学习笔记-maven的获取和安装

      windows下maven的安装步骤:      1.下载压缩包http://maven.apache.org/download.cgi选择apache-maven-3.3.9-bin.zip下载 ...

  3. maven学习笔记--maven项目创建

    使用Maven命令和Eclipse的Maven插件,创建Maven项目 (1)maven命令生成项目         新建一个文件目录,dos进入该目录并执行下面命令: mvn archetype:c ...

  4. Maven 学习笔记——Maven和Eclipse(2)

    前面已经配置好Maven的环境和本地仓库已经准备好了,下面我们通过Eclipse创建Maven项目. 1.安装Maven集成于Eclipse IDE (Eclipse的版本中如果已经集成了Maven插 ...

  5. Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

  6. Maven学习笔记-04-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

  7. Maven学习笔记—仓库

    Maven仓库 1 什么是Maven仓库 在Maven中,任何一个依赖.插件或者项目构建的输出,都可以成为构件,而Maven通常在某个位置统一的存储所有Maven项目共享的构件,这个统一的位置就是Ma ...

  8. MAVEN学习笔记之Maven插件的应用(4)

    MAVEN学习笔记之Maven插件的应用(4) <build> <pluginManagement> <plugins> <plugin> <gr ...

  9. MAVEN学习笔记之Maven生命周期和插件简介(3)

    MAVEN学习笔记之Maven生命周期和插件简介(3) clean compile site三套生命周期相互独立. clean pre-clean 执行清理前的工作 clean 清理上一次构建生成的所 ...

随机推荐

  1. 【原创】MySQL(Innodb)索引的原理

    引言 回想四年前,我在学习mysql的索引这块的时候,老师在讲索引的时候,是像下面这么说的 索引就像一本书的目录.而当用户通过索引查找数据时,就好比用户通过目录查询某章节的某个知识点.这样就帮助用户有 ...

  2. 【Redis】-- 安装及配置

    我们redis的安装较为复杂,属于Linux上的源码编译安装,即不能直接通过yum安装. 1.安装Redis 具体步骤: 1.进入redis官网,复制下载链接,通过wget下载源码 官网:https: ...

  3. SVN-您的主机中的软件中止了一个已建立的连接

    关于这个问题,网络上有各种解决的办法,关闭防火墙,HTTP/HTTPS切换,改端口... ...但我都试了没有用.本来一直用的好好的,突然就出现了这个问题,而且在几分钟前都是正常的.下面来说说我都干了 ...

  4. 使用gitflow流程完成功能时报错

    报错 fatal: could not read Username for 'https://github.com': ······ 原因 使用https方式的时候 在https url 里面没有用户 ...

  5. AJAX-快速上手(四个步骤)

    ## 1, ajax ajax是使用js进行在不重新加载页面的情况下,使得页面局部刷新.而传统的页面加载即需要,重新加载整个页面.它的加载是异步进行的,即在加载的同时,页面的其他部分可以正常使用,不会 ...

  6. Oracle 触发器 trigger

    触发器: 当用户登录/退出或者操作某个数据对象或者进行DDL(建表,建view)引起某个储存过程的值的变化,把这个隐含被调用的过程,称为触发器. 语法 CREATE OR REPLACE TRIGGE ...

  7. SQL Server 查询某个字段值在哪张表的哪个字段

    我要查找值为‘WSCOL1525’的字段. declare @cloumns varchar(40)declare @tablename varchar(40)declare @str varchar ...

  8. Selenium 3----警告框处理+下拉框选择

    警告框处理 在WebDriver中处理JavaScript所生成的alert.confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confi ...

  9. 转:浅谈SimpleDateFormat的线程安全问题

    转自:https://blog.csdn.net/weixin_38810239/article/details/79941964 在实际项目中,我们经常需要将日期在String和Date之间做转化, ...

  10. (转)JDK 1.8 预览版Lambda语法分析

    一.lambda含义     lambda表示数学符号“λ”,计算机领域中λ代表“λ演算”,表达了计算机中最基本的概念:“调用”和“置换”.在很多动态语言和C#中都有相应的lambda语法,这类语法都 ...