每个项目都会有多套运行环境(开发,测试,正式等等),不同的环境配置也不尽相同(如jdbc.url),借助Jenkins和自动部署提供的便利,我们可以把不同环境的配置文件单独抽离出来,打完包后用对应环境的配置文件替换打包后的文件,其实maven已经给我们提供了替换方案:profile + filtering

Filtering

Filtering 是 maven 的 resource 插件 提供的功能,作用是用环境变量、pom文件里定义的属性和指定配置文件里的属性替换属性(*.properties)文件里的占位符(${jdbc.url}),具体使用如下:
src/main/resources目录有个配置文件jdbc.properties,内容如下:

jdbc.url=${pom.jdbc.url}
jdbc.username=${pom.jdbc.username}
jdbc.passworkd=${pom.jdbc.password}

配置 resource 插件,启用filtering功能并添加属性到pom:

<project>...<!-- 用pom里定义的属性做替换 -->    <properties><pom.jdbc.url>jdbc:mysql://127.0.0.1:3306/dev</pom.jdbc.url><pom.jdbc.username>root</pom.jdbc.username><pom.jdbc.password>123456</pom.jdbc.password></properties><build>...<!-- 可以把属性写到文件里,用属性文件里定义的属性做替换 --><filters><filter>src/main/filters.properties</filter></filters><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources>...</build>...
</project>

编译包后target目录下的jdbc.properties:

jdbc.url=jdbc:mysql://127.0.0.1:3306/dev
jdbc.username=root
jdbc.passworkd=123456

转载

使用 Maven Profile 和 Filtering 打各种环境的包 - SegmentFault 思否
https://segmentfault.com/a/1190000003908040

maven Filtering true 作用相关推荐

  1. Maven | filtering,filter和profile标签使用

    博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): Maven的filtering和profile标签使用 使用Maven 将项目分版 前言 每个项目通常都会用不同的配置文 ...

  2. Maven — maven filtering OTS parsing error incorrect file size in WOFF head 产生原因及两种解决方案

    背景说明 前端静态资源文件放在后端SpringBoot项目resources文件夹下,多环境打包后前端页面出现了图标及文字未按预期样式显示的情况,查看浏览器控制台发现出现如下错误. OTS parsi ...

  3. Maven Filtering和Profile

    Filtering Filtering是resource插件的功能,作用是将资源文件中的占位符替换成对应的值,如下图所示: 使用注意 启用resource插件的filtering功能: 设定资源文件的 ...

  4. keyProperty=“id“ 和useGeneratedKeys=“true“作用

    keyProperty="id" 和useGeneratedKeys="true"作用 使用 mysql 自增长序列,新插入一条数据时,怎么得到主键? 加入以下 ...

  5. 依赖类型dependency type在maven中的作用

    看看下面这段pom配置 ... <dependency><groupId>xxx</groupId><artifactId>yyy</artifa ...

  6. maven scope 的作用

    一: 1.Maven中的依赖作用范围概述 Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性.常见的可选值有:compile, provided, runtime, test, sys ...

  7. Maven是什么? Maven的概念+作用+仓库的介绍+常用命令

    Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型.一组标准集合,一个依赖管理系统.和用来运行定义在生命周期阶段中插件目标和逻辑. 核心功能 Maven的核心 ...

  8. 【Maven】Maven classifier的作用

    1.概述 直接看一个例子,maven中要引入flink-streaming-java包,于是使用了 <dependency><groupId>org.apache.flink& ...

  9. hive.groupby.skewindata=true作用

    转载来自:https://www.jianshu.com/p/9b62b9344ed5 set hive.groupby.skewindata=true://决定 group by 操作是否支持倾斜数 ...

  10. maven dependency的作用英文解释(转载)

最新文章

  1. Spring Boot Spring MVC 异常处理的N种方法
  2. 使用windows调用Linux远程桌面
  3. Redundant Binary Upload. There already exists a bi
  4. 一文搞定 Docker 容器技术与常用命令
  5. iOS block 用法
  6. 解决docker push镜像到docker hub报没有权限
  7. nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.chengg
  8. Dubbo快速入门教程
  9. IDEA修改背景颜色大全(护眼绿等)
  10. matlab中的线性规划
  11. PCWorld评出的2010年世界杀毒软件排名
  12. 基于JSP的小区停车管理系统设计与实现
  13. 指数基金的分类以及投资方法
  14. 计算机病毒无法破坏压缩文件,求解压缩文件拒绝访问是怎么回事?
  15. JAVA版农历和阳历相互转换源码
  16. 福到了 分数 15作者 陈越单位 浙江大学
  17. 【神操作】网络分线器短路导致公司网络瘫痪
  18. 视频显著性检测----《Flow Guided Recurrent Neural Encoder for Video Salient Object Detection》
  19. 配置mpls vpn基本组网-hub and spoke
  20. Chrome浏览器87端口限制问题

热门文章

  1. 带农历日历的DatePicker控件!Xamarin控件开发小记
  2. Goldendict 及其词典详述
  3. Same Parity Summands
  4. 下厨房(istringstream的使用)----网易2017内推笔试编程题合集
  5. Meatycake,51nod2117,树状数组
  6. GitHub设置代理 提升速度
  7. NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE翻译
  8. TP5 微信分享朋友圈接口显示自定义图片和标题
  9. cer证书的命令导入
  10. 千元4G拍照机皇 中兴红牛手机4月18号开卖