原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79776666

内置属性

主要有两个常用内置属性:${basedir}项目的根目录(包含pom.xml文件的目录),${version}项目版本

POM属性

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

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

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

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

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

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

${project.groupId}:项目的 groupId    

${project.artifactId}:项目的 artifactId  

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

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

自定义属性

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

Settings属性

用户使用settings.开头的属性引用 settings.xml 文件中XML元素的值

Java系统属性

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

环境变量属性

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


在依赖中 使用pom变量

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>part-a</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>part-b</artifactId>
<version>${project-version}</version>
</dependency>
</dependencies>

在插件中使用pom变量

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<repositoryDirectory>${project.build.directory}/test-reports</repositoryDirectory>
</configuration>
</plugin>

自定义变量

<profiles>
<profile>
<id>dev</id>
<properties>
<db.driver>com.mysql.jdbc.Driver</db.driver>
<db.url>jdbc:mysql://localhost:3360/test</db.url>
<db.username>username</db.username>
<db.password>password></db.password>
</properties>
</profile>
</profiles>

Maven属性默认只有在POM中才会被解析,因此需要让Maven解析资源文件中的Maven属性。Maven用maven-resources-plugin处理资源文件。它默认的行为只是将项目主资源文件复制到主代码编译输出目录中,将测试资源文件复制到测试代码编译输出目录中。Maven默认的主资源目录和测试资源目录的定义是在超级POM中,要为资源目录开启过滤,只要在此基础上添加一行filtering配置即可。Filtering是maven resource插件的功能,作用是用环境变量,pom文件里定义的属性和指定文件里的属性替换属性文件的占位符。(超级pom在 apache-maven-3.3.9\lib\maven-model-builder-3.3.9.jar\org\apache\maven\model\pom-4.0.0.xml)

Maven 教程(19)— Maven的六类属性的更多相关文章

  1. python 面向对象六 类属性和实例属性

    一.实例属性 Python是动态语言,根据类创建的实例可以任意绑定属性. >>> class Student(object): ... def __init__(self, name ...

  2. Maven 学习笔记-maven属性

    Maven有六类属性: 1)内置属性 主要有两个常用内置属性 ${basedir}:表示项目根目录,即包含pom.xml文件的目录: ${version}:表示项目版本: 2)POM属性 ${M2_H ...

  3. Maven教程:tutorialspoint-maven

    来自turorialspoint的Maven教程(英文),官网:http://www.tutorialspoint.com/maven/index.htm 这个教程在国内已经被翻译成中文,官网:htt ...

  4. Maven 教程

    Maven 教程 序:几次对Maven 的学习,都因为各种原因 而中途切断了,再一次学习的时候,又不得不重新开始,结果发现 又不记得步骤 又找不到对应的文档.别人写的再好,终究比不过自己亲手实践的得出 ...

  5. myeclipse使用maven教程

    本教程包括 1.使用myeclipse构建maven下载jar包 2.使用myeclipse运行maven命令 3.使用myeclipse管理maven项目 搭建maven教程以后有时间了贴进来. 1 ...

  6. Java-Maven-Runoob:Maven教程

    ylbtech-Java-Maven-Runoob:Maven教程 1.返回顶部 1. Maven 教程 Maven 翻译为"专家"."内行",是 Apache ...

  7. 初次学习DropWizard框架——解决maven打包时出现没有主清单属性的问题

    笔者因为公司的项目需要,开始接触DropWizard框架,照着官网https://www.dropwizard.io/0.9.2/docs/getting-started.html撸了一遍. 工具为I ...

  8. Maven实战读书笔记(六):Maven灵活构建

    Maven为了支持构建的灵活性,内置了3大特性,即:属性.Profile和资源过滤. 6.1 Maven属性 Maven的属性与Java代码的常量有异曲同工之妙,都是为了消除重复,对相关内容进行统一管 ...

  9. Maven教程

    找了一个很详细的maven教程 收藏下 学习网址:http://www.yiibai.com/maven/

随机推荐

  1. Bootstrap导航栏示例

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 设计模式之(十四)责任链模式(Chain of Responsibility)

    在业务场景中,有很多是需要审批的.审核方式还可能常常发生变化,而责任链模式就是为了解决这种场景的情况的. 责任链模式定义:十多个对象都有机会处理请求,从而避免发送者和接受者之间的耦合关系.讲这些对象连 ...

  3. SQL Server强制释放内存

    --强制释放内存 CREATE procedure [dbo].ClearMemory as begin --清除所有缓存 DBCC DROPCLEANBUFFERS --打开高级配置 EXEC (' ...

  4. 简单几招提速 Kotlin Kapt编译

    https://droidyue.com/blog/2019/08/18/faster-kapt/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_ ...

  5. pgsql主备搭建及切换

    二.主从搭建 2.1测试目标 测试postgresql主从搭建安装过程 2.2环境准备 实例级别的复制 流复制主库可读写,但从库只允许查询不允许写人, 而逻辑复制的从库可读写 流复制实验环境 主机 主 ...

  6. ASP.NET----内置对象----Response

    Response对象是HttpResponse类的实例,它代表Web服务器对客户端请求的响应,包含如下功能: ①重定向:  ②设置页面输出内容 (可以向客户端浏览器发送信息,或者将访问转移到另一个网址 ...

  7. angular6 页面加载数据时的loading提示

    使用npm安装ngx-loading模块 npm install --save ngx-loading 在app.module.ts中导入模块 import { BrowserModule } fro ...

  8. sql server 如何在全库中查找数据在哪个表

    1.查找字段在库中哪个表 如果要查找FName select   a.name,b.name   from   syscolumns a   inner   join   sysobjects   b ...

  9. Nginx 反向代理功能-动静分离

    Nginx 反向代理功能-动静分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  10. 二、urllib库的使用详解

    一.urllib2库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urllib2. urllib2 是 ...