Maven | filtering,filter和profile标签使用
博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导):
Maven的filtering和profile标签使用
使用Maven 将项目分版
前言
每个项目通常都会用不同的配置文件对应不同的版本,例如开发版和上线版本的配置通常会是不同的。此时就会产生一个问题,当项目需要从开发版切换到上线版时,总是会避免不了更改很多配置项,或者切换配置文件,但是不管哪一种都不方便配置。使用Maven就可以很方便的帮助我们应对这种问题,本文就简单介绍一下使用方法。
resources属性
这个属性就是指定构建项目时需要将哪些配置文件打包,其本身包含很多子标签,这里就不一一介绍了,只介绍相关的。其中include就是指定需要包含在最终项目中的资源。
<resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>*.properties</include><include>*.xml</include></includes>
</resource>
在上面的resource标签意思是将src/main/java/下的文件夹及其子文件夹的xml文件在编译时包含在最终工程中。这个配置可以解决mybatis的将mapper接口和mapper.xml放在同一个文件夹下找不到mapper的问题。
下面的resource标签是本文重点要介绍的。其含义是扫描src/main/resources/下的所有properties和xml文件将其中的${}引用在打包时换成直接引用。filtering标签的作用就是这个。
示例
上图为本次示例的项目结构,dev.properties对应开发版配置,prod.properties对应上线版配置。
#prod.properties
#database
jdbc.mysql.url=jdbc:mysql://localhost:3306/car?useUnicode=true&characterEncoding=UTF-8
jdbc.mysql.driver=com.mysql.jdbc.Driver
jdbc.mysql.user=guojing
jdbc.mysql.password=huangrong
#config.properties
#database
jdbc.url=${jdbc.mysql.url}
jdbc.driver=${jdbc.mysql.driver}
jdbc.user=${jdbc.mysql.user}
jdbc.password=${jdbc.mysql.password}
通过profile标签使上线版配置文件生效
<profiles><profile><id>dev</id><build><filters><filter>src/main/resources/filters/dev.properties</filter></filters></build></profile><profile><id>prod</id><activation> <!-- 这里是关键,让这个版本默认激活 --><activeByDefault>true</activeByDefault></activation><build><filters> <!--过滤时采用的过滤文件为--><filter>src/main/resources/filters/prod.properties</filter></filters></build></profile>
</profiles>
Maven | filtering,filter和profile标签使用相关推荐
- Maven学习(十四)profile标签
Maven学习(十四)profile标签 1.profile概述 ①单词释义 ②项目的不同运行环境 ②默认profile 2.profile配置 ①外部视角:配置文件 ②内部实现:具体标签 [1]pr ...
- myecplise新建Maven项目Filter选什么,使用myeclipse建立maven项目
myecplise新建Maven项目Filter选什么 使用myeclipse建立maven项目 1 2 3 4 5 6 7 分步阅读 maven是管理项目的,myeclipse是编写代码的.第一 ...
- Maven 依赖管理与依赖标签
原文链接 1.概述 在本教程中,我们将回顾两个重要的Maven标签--dependencyManagement 和 dependencies. 这些特性对于多模块项目特别有用. 我们将回顾这两个标签的 ...
- maven中强大的scope标签详解
maven中强大的scope标签详解 本文目的 接上一篇maven的版本号version的总结及理解 当我在封装工具jar包的时候,发现有些依赖,是一定要在工具代码里使用的,比如我做的工具包里 ...
- Maven Assembly插件 使用与标签介绍
Maven Assembly插件 使用与标签介绍 一.介绍 Assembly 插件的主要作用是,允许用户将项目输出与它的依赖项.模块.站点文档.和其他文件一起组装成一个可分发的归档文件. 二.常见的m ...
- Maven Filtering和Profile
Filtering Filtering是resource插件的功能,作用是将资源文件中的占位符替换成对应的值,如下图所示: 使用注意 启用resource插件的filtering功能: 设定资源文件的 ...
- Maven — maven filtering OTS parsing error incorrect file size in WOFF head 产生原因及两种解决方案
背景说明 前端静态资源文件放在后端SpringBoot项目resources文件夹下,多环境打包后前端页面出现了图标及文字未按预期样式显示的情况,查看浏览器控制台发现出现如下错误. OTS parsi ...
- maven POM.xml内的标签大全详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- maven(一 基本操作 命令 标签)
原来一直没有使用maven 小公司,只是听说过这个东西,我没事就喜欢 去学习一些新东西.maven学了几次,但是 没有用上 所以 最后还是忘记了,或者说不知道怎么使用maven,一年半以前公司 改革 ...
最新文章
- python分组聚合显示全部列_python – pandas:如何按多列分组并在多列上执行不同的聚合?...
- xx学OD -- 消息断点 RUN跟踪(下)
- 政企多样化发力 社区半径引领智慧社区生态建设
- ajax使用教程_AJAX教程:什么是AJAX以及如何使用它
- qt glsl渲染rgb
- js获取地址栏url以及获取url参数
- 软件工程课堂练习购买图书
- 窄带物联网技术有望终结碎片化现状
- 【学习0605】NVIDIA DRIVE AGX Developer Kit - How to set up
- C# 通用树形数据结构
- 置换元素和非置换元素
- 用matlab制作证件照,美图秀秀证件照制作方法图文教程
- Asp.Net Mvc基于Fleck开发的多人网页版即时聊天室
- 什么牌子的洗地机最适合家用?洗地机品牌排行榜前十名推荐
- GDOI2020爆蛋记
- Guass列选主元消去法和三角分解法
- 运行中的线程如何停止?
- 【龙印】用龙芯1c实现3D打印机的总体思路
- 重学java——套娃
- 《Python程序设计》python常用的格式转换
热门文章
- [原创]TenJi Game-线下玩法技巧
- 非递归前序遍历二叉树,非递归中序遍历二叉树,非递归后续遍历二叉树
- c语言程序2000行代码,C语言教务管理系统2000行代码
- YUV数据格式与YUV_420_888
- RDP服务针对性攻击、钓鱼邮件攻击和勒索病毒家族Phobos研究
- ja-netfilter-all,IntelliJ IDEA 2021.3.2 (Ultimate Edition)
- 关于打包处理less文件时遇见的问题:
- RTL8723BU wifi 及 热点移植和测试
- Jmeter 中断言操作
- Python pip 常用命令