maven - 多模組打包 -每個模組 多 環境 yml 的具體配置
阿新 • • 發佈:2022-01-09
1.網上找不到具體說明maven 多模組,其中每個模組有多個環境yml配置檔案 具體該怎麼設計
琢磨了半天並驗證 ,總結如下
1.在需要配置多環境的子模組工程裡 的 resources 裡 配置多個application.yml ,其他的使用 application-[自定義].yml 格式新建,如 application-pro.yml
2.有多個配置檔案時,application.yml 這個檔案僅作引入其他 yml使用,不寫 具體的配置資料
3.每個子模組裡的pom.xml檔案需要在 <build> 標籤裡新增 <resources> 配置,如果沒有設計,會導致不論是開發工具啟動還是打包 都會引入所有yml
4.不是所有工程都需要配置多yml ,不影響預設 application.yml 的使用,
如zuul、 eureka等 不論是本地還是生產 ,都沒有配置區別 ,可以不做yml配置,以前是什麼就是什麼
5.需要在最大父級pom.xml配置<profiles>,這樣idea 的maven結構會顯示profiles的選擇框
6.有些會顯示jdk版本,那是因為在maven的setting.xml設定了 <profiles>,
具體配置看下面內容
7.不論是打包還是開發工具啟動 ,都需要選擇profiles,如果不選擇,會導致全部yml都生產並執行 ,最終導致排列最後一個yml生效 【同欄位】
2.配置
看下結構
配置 jdk版本
在當前 專案使用的 maven 找到setting.xml檔案,
不知道的可以檢視idea設定裡
找到 <settings> 》<profiles> 裡新增
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
儲存即可
父級pom.xml 新增 配置
<profiles>
<!-- dev開發環境配置,pro為生產環境配置 -->
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>pro</id>
<properties>
<profileActive>pro</profileActive>
</properties>
</profile>
</profiles>
在需要配置多yml的工程裡新增新增yml檔案
其中application.yml 檔案只需要配置下面這點
spring:
profiles:
active: @profileActive@
其他的根據以前配置application.yml 的格式配置 ,這裡就不展示具體內容了
現在點一下重新整理maven就出來選項了
不論是打包還是開發工具啟動 ,都需要選擇profiles ,如果不選擇,會導致全部yml都生成並執行 ,最終導致排列最後一個yml生效 【同欄位】