【IDEA】Maven踩坑:pom文件中的默認profiles不生效+IDEA中Maven的profiles使用說明


一、問題即分析

項目pom文件中的profiles有3個配置:devtestproduction
默認配置的是dev,如下圖:

但在本地起服務時,讀取的配置始終是test里的。

二、原因

2.1 maven中的profile說明

開始並不知道原因,因為特別違反常理,pom文件里的配置不生效你敢信...后來發現其實是IDEA的鍋。

對於IDEA中Maven的使用需要注意以下內容:

圖片內容摘自: https://youmeek.gitbooks.io/intellij-idea-tutorial/content/maven-skill-introduce.html

注意:上面說的profile我們都理解,有多個也理解,但同時激活多個profile是什么鬼?
如果我同時激活兩個,而這兩個里面對於同一個屬性的值配置的並不同,那么Maven或者說IDEA要如何選擇?選擇哪個?

一看我們的項目,果然是這個原因:同時選中了devtest的配置,但實際生效的是test,即使我們pom里面配置的默認是dev...而且,不管我們怎么改dev,配置始終不生效,因為實際使用的配置是test

2.2 為什么IDEA會同時選中devtest

因為我們這個項目是一個多模塊項目,里面有3個Web,其中一個的默認配置是test,另外兩個的默認配置都是 dev。可能因為這樣導致同時選中了devtest

2.3 為什么之前沒問題?

因為之前每個項目里的devtest配置都一樣,這次上線,因為測試原因,修改了配置,將test的配置改為了預發的配置。然后本地起服務,讀取了預發的配置,就出了問題。

三、解決

上圖中的配置,只選中dev...果然,問題解決了。不能都不選,不然連項目都無法編譯...

四、結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM