一 pom.xml配置如下:
<profiles>
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prd</id>
<properties>
<spring.profiles.active>prd</spring.profiles.active>
</properties>
</profile>
</profiles>
二 配置application.yml
application.yml中先配置一些公共的部分。然后配置需要分开的部分。
spring:
profiles:
active: @spring.profiles.active@
logging:
config: "classpath:[email protected]@.xml"
file: "logs/wsc-super-miner.log"
pattern:
console: "[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%t] [%logger - %line]: %m%n"
file: "[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level [%t] [%logger - %line]: %m%n"
level:
root: INFO
三 创建不同的配置文件
现在profile环境有dev和prd。
需要创建文件 application-dev.yml、application-prd.yml和日志配置文件logback-dev.xml、logback-prd.xml
springboot的配置我需要分开的有mysql、redis还有端口。
所有application-dev.yml如下:
spring:
redis:
host: 127.0.0.1
port: 6379
password:
lettuce:
pool:
max-active: 16
max-idle: 16
min-idle: 1
# mysql
datasource:
url: "jdbc:mysql://127.0.0.1:3306/futuresdb_t?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Hongkong&useLegacyDatetimeCode=false"
username:
password:
type: "com.zaxxer.hikari.HikariDataSource"
hikari:
driver-class-name: "com.mysql.cj.jdbc.Driver"
maximumPoolSize: 30
minimumIdle: 5
server:
port: 7777
至于application-prd.yml 根据自己的环境进行更换配置。
日志配置文件同理。
四 打包
1 打包的时候只需要进行如下图勾选 dev环境或者prd生产环境。
2 勾选好环境 点击lifecycle中的package或者install进行打包。
或者使用命令打包: mvn clean package -P prd; 指定环境进行打包(如果不指定,打包的还是pom.xml中的默认的环境dev)。
注意:切换环境后,本地启动的环境是成功切换了的。但是打包并没有。
在我成功切换环境prd后,仍然使用命令mvn clean package打包,本来我以为这样也可以打包成prd环境的,但结果是pom.xml中默认的环境dev(activeByDefault = true),所以需要在后面命令加参数 mvn clean package -P prd进行打包。
验证:打包完成后可去target/classes/application.yml中进行验证环境是否正确。