配置不同生产环境
本文适用于开发环境下需要打包项目至生产环境,避免开发环境的配置文件泄露。
设置maven
作用:1. 手动调节运行时的不同环境 2. 打包时可以不会有其它环境的文件
注:每次换环境前(打包前)记得手动clean清楚,因为idea不会在换环境后自动清除另一个环境的文件
在pom文件中加
-
在依赖
前加 copy<profiles> <profile> <id>devid> <activation> <activeByDefault>trueactiveByDefault> activation> <properties> <environment>devenvironment> properties> profile> <profile> <id>prodid> <activation> <activeByDefault>falseactiveByDefault> activation> <properties> <environment>prodenvironment> properties> profile> profiles> -
在
标签中放该代码 copy<resources> <resource> <directory>src/main/resourcesdirectory> <excludes> <exclude>application*.yamlexclude> excludes> resource> <resource> <directory>src/main/resourcesdirectory> <filtering>truefiltering> <includes> <include>application.yamlinclude> <include>application-${environment}.yamlinclude> includes> resource> resources>
设置三个yaml
application.yaml、application-dev.yaml 、application-prod.yaml
copy//application.yaml
//方法一:弊端(打包时会把dev 和 prod环境的配置文件都会打包),无法真正做到多环境开发
spring:
profiles:
active: dev //这里是写配置文件命名-后的单词
//方法二:通过maven来告诉springboot应该打包哪个环境的文件(优点:不会包含其他环境的配置文件)
spring:
profiles:
active: '@environment@' #这里的单词要手动打,等有提示才行,不然会失败。注意YAML配置文件需要加单引号,否则会报错。
copy//application-dev.yaml
server:
port: 8080
copy//application-prod.yaml
server:
port: 80
注意:
如果有设置日志打印,想要不同环境日志打印不同需要去日志打印的配置文件改这些:把上面上部分改成下部分
copy <root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
root>
------------------------------------------------------------------
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
root>
springProfile>
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="FILE"/>
root>
springProfile>