maven+spring boot 多环境多配置切换
maven多环境配置文件,生产环境,开发环境,测试环境的配置文件resource目录如图: 需要动态切换的是application.yml和properties文件pom.xml的配置如下
maven多环境配置文件,生产环境,开发环境,测试环境的配置文件resource目录如图: 需要动态切换的是application.yml和properties文件
pom.xml的配置如下
<!-- 开启读取多环境配置 --
>
<build
>
<resources
>
<resource
><!--此处的设置是打包的时候排除不相关的目录--
>
<directory
>src/main/resources/config
</directory
>
<!--此处设置为上面在resources目录下创建的文件夹--
>
<excludes
>
<exclude
>dev/*
</exclude
>
<exclude
>test/*
</exclude
>
<exclude
>prod/*
</exclude
>
</excludes
>
<!--开启过滤器,此处不能忽略!--
>
<filtering
>true
</filtering
>
</resource
>
<!--此处的设置是为了将放置于resources文件夹下mybatis的mapper文件正常打包进去,和一些不需要多环境的配置文件--
>
<resource
>
<!--如果将mybatis的mapper文件放在dao接口的同目录下,应该将此处设置为src/main/java--
>
<directory
>src/main/resources
</directory
>
<includes
>
<include
>**/*.xml
</include
>
<include
>aa.jks
</include
>
<include
>logback.xml
</include
>
<include
>public.txt
</include
>
<include
>aa.json
</include
>
<include
>static/**
</include
>
</includes
>
<!--此处不需要过滤器过滤--
>
<filtering
>false
</filtering
>
</resource
>
<!--此处设置是配置相应配置文件夹的路径
(profiles.active是自己定义的,和下边的profile对应即可
)--
>
<resource
>
<directory
>src/main/resources/config/
${profiles.active}</directory
>
</resource
>
</resources
>
</build
>
<profiles
>
<profile
>
<id
>dev
</id
>
<properties
>
<profiles.active
>dev
</profiles.active
>
</properties
>
<!-- 默认使用的环境配置 --
>
<activation
>
<activeByDefault
>true
</activeByDefault
>
</activation
>
</profile
>
<profile
>
<id
>test
</id
>
<properties
>
<profiles.active
>test
</profiles.active
>
</properties
>
</profile
>
<profile
>
<id
>prod
</id
>
<properties
>
<profiles.active
>prod
</profiles.active
>
</properties
>
</profile
>
</profiles
>
打包的时候: 自己的命令,后边加 - P dev 这个命令即可 P是大写,后边的dev代表自己要打包的环境的名称(匹配好自己定义的)
注意: 除了需要动态配置的配置文件之外,resource里面还有很多其他的文件夹:如rules里面的校验,mapper里面的sql,还有static里面的静态资源等。 如果不按照以上配置,会提示mapper的sql找不到,页面访问404,日志文件配置读不到等多种问题。
最后: 对比我的文档结构和配置,调整自己的文档结构和配置 配置不是全部复制下来就可以的了,还是要结合自己的实际情况相应修改。