保定网站建设设计公司,wordpress 菜单添加图标,小程序制作单位,王也天个人资料背景
在使用 springboot 和sringcloudnacos开发项目过程中#xff0c;会有多种环境切换#xff0c;例如开发环境#xff0c;测试环境#xff0c;演示环境#xff0c;生产环境等#xff0c;我们通过建立多个 yml 文件结合 profiles.active 属性进行环境指定#xff0c;但…背景
在使用 springboot 和sringcloudnacos开发项目过程中会有多种环境切换例如开发环境测试环境演示环境生产环境等我们通过建立多个 yml 文件结合 profiles.active 属性进行环境指定但是需要打包时就要手动更改配置文件逐个打包容易造成不必要的误操作本文就介绍如何进行不同环境配置文件的动态切换及一次性打包多个不同环境的部署包
配置 pom 文件
pom 文件添加 profiles 配置项目有多少个配置文件添加多少个子节点profiles 标签于 parent 标签同级这样我们就可以在右侧 maven 的配置项中勾选指定的环境
!-- 配置文件 --profilesprofile!-- 研发环境 --iddev/idpropertiesprofiles.activedev/profiles.active/propertiesactivationactiveByDefaulttrue/activeByDefault/activation/profileprofile!-- 测试环境 --idtest/idpropertiesprofiles.activetest/profiles.active/properties/profileprofile!-- 线上环境 --idpro/idpropertiesprofiles.activepro/profiles.active/properties/profile/profiles
buildfinalName${project.artifactId}-${project.version}.${project.packaging}/finalNameresources!-- 代码生成器配置文件过滤 --resourcedirectorysrc/main/resources/directoryincludesincludebootstrap.yml/includeincludebootstrap-${profiles.active}.yml/includeinclude**/*.xml/include/includesfilteringtrue/filtering/resource
/resources
plugins!-- 编译 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource1.8/sourcetarget1.8/target/configuration/plugin!-- 打包 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-war-plugin/artifactIdversion3.3.2/version/plugin/plugins
创建多个配置文件
bootstrap.yml #主配置文件
bootstrap-dev.yml #开发环境配置
......
bootstrap.yml文件内容
spring:profiles:active: profiles.active bootstrap-dev.yml文件内容
server:port: 9041servlet:context-path: /servicetomcat:uri-encoding: UTF-8max-http-form-post-size: -1
spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT8application:name: serviceprofiles:active: profiles.activemain:allow-bean-definition-overriding: truecloud:nacos:discovery:server-addr: nacos.serverip: nacos.discoveryconfig:server-addr: nacos.serverfile-extension: yaml
打包命令
CMD
mvn clean install -Pdev
idea中启动时选择profiles 总结一下
网上都是springboot多环境打包的方法springcloud基本没看到。Spring Boot 默认核心配置文件名为 application支持 application.properties、application.yml、application.yaml。后面两个本质上同一种类型。当三者同时存在时优先级为properties yaml yml。这个没去验证过但在springclod项目中使用了nacos配置application.yml是不起作用的项目根本启动不了。
有些文章说 bootstrap.yml 的优先级最高。这种说法是不完全准确的在springcloudnacos项目中配置必须写在bootstrap*.yml中不然启动直接报错因为大部分配置都在nacose中yml文件里只有服务器名称和nacos服务器的相关配置如addr、group及namespace的定义其它信息都配置在nacos中。