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生效 【同字段】
8.切換yml打包時記得先clean后再package
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生效 【同字段】
