背景
最近使用 IDEA 打包 maven 項目時,碰到客戶反映說日誌級別爲 debug 導致磁盤爆滿的問題,一直沒留意,今天專門看了下 war 包中類路徑下的配置,真的是本機測試環境中的配置文件。
這就很奇怪了,每次打包的時候,都有修改 pom.xml 中的 activeByDefault 爲目標 profile 的呀?反覆測試了幾下,發現了問題根源是 resource 目錄下有幾個默認配置文件,打包的時候最終是這些配置文件到了目標 war 包中了。
resource 下資源打包過程
反覆測試了幾次發現了打包規律如下:
有默認配置文件時
,即使序號 3 配置了 true ,但序號 4 不勾選 pom.xml 對應的 profile ,會直接將默認配置文件打包到類路徑下。
刪掉默認配置文件
,即使序號 3 配置了 true ,但序號 4 不勾選
pom.xml 對應的 profile ,不會有配置文件打包到類路徑下。
刪掉默認配置文件
,即使序號 3 配置了 true ,但序號 4 勾選
一個非 3 配置的 profile 時,會將勾選 profile 下的配置文件打包到類路徑下。
編程啓示錄
結論就是,打包時配置文件是由勾選的 profile 爲主的,不勾選,就沒有:
- 不要在 resource 目錄下放默認配置文件
- 打包時一定要在右側勾選對應的配置文件目錄