1. 程式人生 > 其它 >maven - 多模組打包 -每個模組 多 環境 yml 的具體配置

maven - 多模組打包 -每個模組 多 環境 yml 的具體配置

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生效 【同欄位】