maven專案如何載入不同的配置檔案
阿新 • • 發佈:2018-12-15
疑惑: 公司專案,本地啟動時取用預設路徑的下的配置檔案,而當maven打包時取用另一檔案路徑下的配置檔案。 解決過程:首先查詢公司專案程式碼中是否控制本地啟動和伺服器啟動時使用的配置檔案不同,但是發現並不是;最後考慮是否是maven打包載入時已經有選擇的獲取配置檔案。 答案: 可通過在pom.xml中增加profile標籤,設定要進行替換的配置檔案,並激活activeByDefault 這樣每次打包部署時,只需設定要啟用哪個profile即可。
<profiles> <profile> <id>local</id> <properties> <package.resource>local</package.resource> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>step</id> <properties> <package.resource>step</package.resource> </properties> </profile> </profiles>
只不過我司這裡比較特殊,待替換的配置檔案有多個,所以指定了載入資料夾,不同的資料夾下放置不同的配置檔案。此處的
<directory>src/main/resources/filter/${package.resource}</directory>
指定 載入動態的目錄${package.resource}
我們在啟用相應的profile時,則激活了該檔案目錄下所有的配置檔案,
舉例package.resource的值為local
則maven打包時打包src/main/resources/filter/local下的所有配置檔案;
舉例package.resource的值為step
則maven打包時打包src/main/resources/filter/step下的所有配置檔案。