maven+springboot+yml
参考黑马的maven高级教程和springboot教程运维篇
第一步 在service项目pom中配置(service项目是中层父模块,下有多个子模块)
第二步 在需要的子模块yml文件中引用
(properties用${}解析失败,yml成功了,所以最后用了yml)
第三步 添加过滤 在service项目pom中配置(service项目是中层父模块,下有多个子模块)
我的跟截图不一样,我的没有加${project.basedir}/
我直接src/main/resources
加上能不能用我没有测试
下面是我的配置
第一步 在service项目pom中配置(service项目是中层父模块,下有多个子模块)
第二步 在需要的子模块yml文件中引用
第三步 添加过滤 在service项目pom中配置(service项目是中层父模块,下有多个子模块)
下面是代码
pom文件
<build>
<!-- 这一段放guli_parent中也可以,放service层也可以-->
<!-- 更新:最顶级pom中还要配置上下面这一段-->
<!-- 目的是配置xml properties yml yaml的路径 防止改变mapper路径后找不到mapper -->
<!-- 不能只配置include 中src/main/java下的xml 因为include是"只包括" 只配置这个不配置resources不行 -->
<!-- 所以配置src/main/java后也要把src/main/resources加上 resources目录下的各种配置文件才能被扫描到-->
<resources>
<resource>
<!-- 当xml文件在类路径里不在resources目录时应该配置这个,同时application.properties文件也要修改配置-->
<!-- 项目编译时,告诉idea,在编译的时候将src/main/java下的xml一起打包进class文件夹中,
这样就不会报错Invalid bound statement (not found)-->
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.yaml</include>
<include>**/*.xml</include>
</includes>
<!--设置能够解析,开启过滤,默认是false,设置成true才能替换成功 -->
<filtering>true</filtering>
</resource>
</resources>
</build>
<!-- 多环境开发的属性 在yml文件中直接用=@profile.active@ 注意资源开启过滤 就是上面的resources内需要<filtering>true</filtering> -->
<!-- 换环境直接把 <activation><activeByDefault>true</activeByDefault></activation> 挪到要换的位置-->
<profiles>
<profile>
<id>dev_env</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<activation><activeByDefault>true</activeByDefault></activation>
</profile>
<profile>
<id>pro_env</id>
<properties>
<profile.active>pro</profile.active>
</properties>
</profile>
</profiles>
yml文件
# 应用环境
# 公共配置
spring:
profiles:
active: @profile.active@
---
# 设置环境
# 生产环境
spring:
profiles: pro
#nacos服务地址 实际项目中这里是服务器的ip
cloud:
nacos:
discovery:
server-addr: 43.142.91.228:8848
---
# 开发环境
spring:
profiles: dev
#nacos服务地址 实际项目中这里是服务器的ip
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848