idea 【Maven Projects # Profiles】問題記錄

今天啓動接一個新項目,而後項目啓動後發現啓動的環境和預想的不一致,查看 pom 文件確認本身是 dev 無誤以後,可是啓動的就是 test 環境。html

問題

發現了啓動環境不對不對以後,本身試了一種解決辦法,就是在添加運行命令 -Dspring.profiles.active 指定須要運行的環境。可是沒有弄清楚緣由仍是以爲難受。 因而開始排查問題,發現了 Maven Projects 的 Tool Window 下有一個歷來沒有注意到的選項:Profiles,想確定是pom 文件中對應的配置。spring

解決方法

發現有些配置是 項目 pom 中配置的,有些是 maven settings.xml 文件中的配置。因而開始探索,發現有些勾選還會變成灰色,有些是亮色,不清楚究竟是什麼意思呢。各類嘗試以後,發現只有僅選擇了 dev 以後,啓動纔會成功。maven

問題雖然解決了,可是不清楚爲何選擇多個就不行呢。ide

因而就去網上搜索,發現都沒有關於這個 tool bar 的解釋,只能去看尋找 官方 HELP了。idea

官方解釋

Working with Maven profiles 這個連接解釋了這個 tool bar 的做用,固然還有一些關於 idea 如何使用的指導,以前都沒有看過,仍是有不少幫助了,建議不清楚的能夠去看看。這裏只簡單介紹 Maven Projects | Profiles 的說明就只說這個吧。spa

  • 顯示範圍 顯示範圍 簡單解釋一下就是,這裏展現3個範圍內的Profilesxml

    • maven 配置文件1,僅使用此文件的項目有效,在 %\USER_HOME%/.m2/settings.xml
    • 全局 maven 配置,${maven.home}/conf/settings.xml.
    • 本項目中 pom 文件中配置的環境
  • 激活環境配置 官方文檔中顯示當咱們導入文件的時候,會有選擇環境的提示,不知道是否是沒有注意仍是版本的問題,沒有看到。總之在這個 tool bar 中能夠經過兩種方式去指定 想要激活的環境htm

    • 一、Execute Maven goal :點擊帶有m的圖表會出現選項,能夠在那裏 經過 -P profileName 指定激活環境
    • 二、經過選擇profiles list中的 複選框選擇

第一種方式是運行maven命令時指定環境的方式,同時能夠驗證我在上面說的,經過啓動時手動添加命令的方式也是能夠指定配置文件的。第二種方式比較便捷,只是不瞭解這個選項的話是不清楚意思的。繼承

繼續閱讀發現,灰顯的勾選是 默認 激活的環境。可是它會被手動激活的方式覆蓋。ci

發現的問題

另外文檔中國還有兩個問題沒有說明,即:

  • 一、多個環境被激活的狀況下,使用哪個環境呢?
  • 二、如何恢復默認的配置狀況,目前好像沒有找到方法。

第一個問題在實踐和網友的方案中得知,是使用最後一個勾選的環境!!!

另外,再記錄一個提醒: 在多模塊項目中,parent 的 dependencies 下的全部依賴會被子項目繼承,若是不想這麼作,能夠使用 <dependencyManagement>標籤,他能夠被子項目引用,可是不會默認加載,只有顯示的引用纔會加載此依賴,並且默認不添加版本會繼承parent的版本,可是也能夠手動覆蓋parent中的版本。

相關文章
相關標籤/搜索