Maven 教程(19)— Maven的六类属性
原文地址: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的六类属性的更多相关文章
- python 面向对象六 类属性和实例属性
一.实例属性 Python是动态语言,根据类创建的实例可以任意绑定属性. >>> class Student(object): ... def __init__(self, name ...
- Maven 学习笔记-maven属性
Maven有六类属性: 1)内置属性 主要有两个常用内置属性 ${basedir}:表示项目根目录,即包含pom.xml文件的目录: ${version}:表示项目版本: 2)POM属性 ${M2_H ...
- Maven教程:tutorialspoint-maven
来自turorialspoint的Maven教程(英文),官网:http://www.tutorialspoint.com/maven/index.htm 这个教程在国内已经被翻译成中文,官网:htt ...
- Maven 教程
Maven 教程 序:几次对Maven 的学习,都因为各种原因 而中途切断了,再一次学习的时候,又不得不重新开始,结果发现 又不记得步骤 又找不到对应的文档.别人写的再好,终究比不过自己亲手实践的得出 ...
- myeclipse使用maven教程
本教程包括 1.使用myeclipse构建maven下载jar包 2.使用myeclipse运行maven命令 3.使用myeclipse管理maven项目 搭建maven教程以后有时间了贴进来. 1 ...
- Java-Maven-Runoob:Maven教程
ylbtech-Java-Maven-Runoob:Maven教程 1.返回顶部 1. Maven 教程 Maven 翻译为"专家"."内行",是 Apache ...
- 初次学习DropWizard框架——解决maven打包时出现没有主清单属性的问题
笔者因为公司的项目需要,开始接触DropWizard框架,照着官网https://www.dropwizard.io/0.9.2/docs/getting-started.html撸了一遍. 工具为I ...
- Maven实战读书笔记(六):Maven灵活构建
Maven为了支持构建的灵活性,内置了3大特性,即:属性.Profile和资源过滤. 6.1 Maven属性 Maven的属性与Java代码的常量有异曲同工之妙,都是为了消除重复,对相关内容进行统一管 ...
- Maven教程
找了一个很详细的maven教程 收藏下 学习网址:http://www.yiibai.com/maven/
随机推荐
- asp.net 路由注册
webapi的路由注册 mvc的路由注册 urlRoutingModule路由
- H5页面基础元素
H5页面结构元素示例 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=&quo ...
- python 进程和线程-简介及进程
进程和线程的关系及应用 参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017627212385376 多任务: 什么叫“多任务”呢?简 ...
- Ipfs基础入门
Ipfs介绍 Ipfs(Inter-Planetary File System!),中文译为星际网络文件系统,是基于默克尔有向无环图(merkle dag)的全球性p2p文件系统. 是一个面向全球的, ...
- set容器与map容器的简单应用
set容器中一些函数,取自百度其他大佬已总结好的,如有侵权,请联系删除! set的各成员函数列表如下: c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器 c++ stl容 ...
- BindRequired and Required
[https://www.cnblogs.com/tdfblog/p/required-and-bindrequired-in-asp-net-core-mvc.html] Required:对值进行 ...
- Java 之 JDK 1.8 新增日期时间类型
一.原来的日期时间 Java1.0中包含了一个Date类,但是它的大多数方法已经在Java 1.1引入Calendar类之后被弃用了.而Calendar并不比Date好多少.它们面临的问题是: ① 可 ...
- Caml 多表关联查询
using (SPSite site = new SPSite(SiteUrl)) { using (SPWeb web = site.RootWeb) { SPQuery query = new S ...
- Ionic run android失败解决方法。
今天在node.js窗口执行命令行ionic run android时就是报Error executing "adb device":error错,一开始以为是SDK不全,后来以为 ...
- 国内不fq安装K8S三: 使用helm安装kubernet-dashboard
目录 3 使用helm安装kubernet-dashboard 3.1 Helm的安装 3.2 使用Helm部署Nginx Ingress 3.3 使用Helm部署dashboard 3.4 使用He ...