文章说明. 原理解析其实不准确
目前网络上 只是告诉你怎么配置, 千篇一律, 遇到问题并不知道问题在哪,如何解决
这篇文章就是告诉你,说明为什么需要这么配置, 影响的地方在哪
1. IDEA 添加不同环境配置说明
- profiles: 环境合集
- profile 环境
这里配置了, idea上的maven就会出现环境选择项
- id: 环境选择项的名称, 你自己看的懂是什么配置环境就OK
- properties: 属性合集
作用: 这里放到打包的时候说
- profile 环境
2. 打包不同环境说明
在这里插入图片描述
- build 打包信息
- resources 指明资源文件夹合集
- resource 资源信息
- directory 指明资源文件目录在哪
- filtering
这个参数很重要, 跟
3. 运行不同环境配置说明
有关, 跟2关系不大
- excludes 包含哪些文件
- includes 不包含哪些文件
- resource 资源信息
打包的时候, 选中环境, 看控制台, 后面会加上一个 -P 的打包参数
通过 mvn --help 得出这个 -P 的完整意思如下
-P,--activate-profiles <arg> Comma-delimited list of profiles
即 激活环境参数的简写
例如这里 激活了 dev 环境. 那么其实就在编译的时候附带上了 properties 里面的所有属性
这时候 properties 的属性就可以在 yml 文件中通过 @变量@ 进行获取
当我的激活环境是 dev 则获取其附带的参数 profile.active = dev
需要注意的是在 yml 中通过 @变量@
获取
在 pom.xml 中, 则是通过 ${变量}
获取
3. 运行不同环境配置说明
实际上这里添加的运行参数是 -Dspring.profiles.active=dev
这里表面上看, -Dspring.profiles.active 其实等价于 -P 参数
所以这里添加的意思是: 运行xxx环境
说下 filtering 作用
filtering 是运行过程中
让 yml文件 可以通过@变量@
获取 运行时的参数
上图这里运用到了环境变量
所以要在这里加上filtering参数
常见问题
问题一: yml 不识别 @变量@
解决办法:
- 加上filtering参数
- plugin 加上 delimiters 节点
本篇文章纯属个人测试后的理解
希望帮助各位理解 DEA 配合 maven 多环境配置
有什么理解不到位的地方请指正