idea中Spring Boot项目Profile不生效的问题

idea中Spring Boot项目Profile不生效的问题



开发Spring Boot项目,会根据不同环境的配置设定不同的Profile,每个Profile下对应一些资源文件。比如数据库的配置,在开发环境下有一套,测试环境有一套,生产环境也有一套。而使用Intellij Idea开发时,Maven选项卡中可以选择要使用哪一个Profile,如图所示。

在这里插入图片描述

需要使用哪一个环境,勾选哪一个profile,然后点击运行就好了。但是有时候会遇到一个诡异的问题,那就是勾选的dev环境,最终实际使用的却是prod配置。其实可能是因为上一次打包是通过命令行操作的,比如mvn clean package -P prod,这样会有什么结果呢,就是这个项目已经编译完成了。通过笔者观察发现,如果先执行mvn clean,然后点击idea的运行或者debug按钮运行,那么对应项目target路径下会多出一个classes文件夹,所以猜测idea是通过classes文件夹是否存在来决定是否需要编译的。如果存在,那么直接用文件夹里面的资源文件;如果不存在,那么使用idea的Profile设置找到对应的资源文件进行编译。而如果已经命令行打包过了,那么maven已经执行到了对应的阶段,target下已经有了classes文件夹,idea也就不再执行编译了,因此即便这时候你在idea选的是dev环境,生效的也是prod的配置了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值