springboot结合maven配置不同环境的profile方式
作者:年少bu轻狂 发布时间:2022-05-28 12:00:16
springboot结合maven配置不同环境的profile
1、在spring-boot中新建配置文件
spring-boot不同环境配置文件格式为application-{profile}.yml
说明:
如果application.yml中的配置和application-{profile}.yml相冲突时,application.yml中的配置会被覆盖掉。
2、在application.yml中增加属性
spring:
profiles:
active: @spring.profiles.active@
说明:如果想要获取mvn中设置的属性变量,需要使用@mvn变量名@(该方式为mvn的默认filter方式,
如果想要更改方式,可以配置自定义filter),不能使用${mvn变量名},否则无法获取到
如果你
3、在pom.xml中添加不同的profile
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- default Spring profiles -->
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<!-- default Spring profiles -->
<spring.profiles.active>prod</spring.profiles.active>
</properties>
</profile>
</profiles>
说明:该配置添加了两个profile,一个dev,一个prod分别对应application-dev.yml和application-prod.yml
4、测试
Maven启动,指定mvn中的Profile通过-P,如mvn spring-boot:run -Pdev
Maven打包,指定mvn中的Profile通过-P,如mvn package -Pdev -DskipTests
另:
如果想要自定过滤器,可以使用mvn的maven-resources-plugin插件,具体说明参考这里
springboot maven多环境配置
环境
本地环境(dev)
测试环境(test)
预生产环境(pre-pro)
生产环境(pro)
不同环境对应不同的文件夹
SpringBoot有profiles功能的支持,我们将此功能加入进来
1、在resources下创建/dev文件夹
在dev文件夹下创建application.properties和application-dev.properties
在resources下创建dev、teest、pro等文件夹是为了maven打包多环境用的.
在本地开发运行时需要在resources下创建一个和打包环境文件夹里相同的文件,因为profiles原因所以需要,创建dev、test、pro是为maven打包用的,而在resources下创建相关文件是为了多功能环境开发或者调试用的
#application.properties文件内容
spring.profiles.active=dev
------------------------分割线----------------------------
#application-dev.properties文件内容
#数据库相关配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
具体配置各求所需,这里就不一一列举了
测试和生产大同小异,同上只需修改配置值即可,dev对应本地配置、test对应测试配置、pro对应生产配置
application-xx.properties 为固定写法,比如application-test.properties就是测试环境配置文件的命名
2、在pom.xml文件加入相关配置如下
此配置加入到 < build > 标签里
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 -->
<excludes>
<exclude>pro/*</exclude>
<exclude>dev/*</exclude>
<exclude>test/*</exclude>
<!--
因为配置profiles原因,我们在打包不希望将如下文件打包进去,所以打包时注释掉即可
如果是本地开发运行需要去掉注释
-->
<!--<exclude>application-pro.properties</exclude>-->
<!--<exclude>application-test.properties</exclude>-->
<!--<exclude>application-dev.properties</exclude>-->
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/${profiles.active}</directory>
</resource>
</resources>
#profiles配置和<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>pro</id>
<properties>
<profiles.active>pro</profiles.active>
</properties>
</profile>
</profiles>
然后选中对应的环境执行maven相关操作即可,博主用的IDEA
如果您用的是eclipse的话,执行maven命令即可,如:就是打包pro环境
来源:https://blog.csdn.net/jisu30miao1225/article/details/80745035


猜你喜欢
- 最近做项目,碰到如下的需求:ViewPager分页,如果是6页(包括6页)就用圆点,如果是6页以上就用进度条来切换。前面一种交互方法最常见,
- 一、概述使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强
- 本文实例讲述了C#禁用双击窗体图标关闭窗体的方法。分享给大家供大家参考。具体实现方法如下:[DllImport("user32.d
- Android5.0之后提供了JobService和JobScheduler,用于在稍后的某个时间点或者当满足某个特定的条件时执行一个任务
- 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC应用,来读取用户输入并使
- Spring @Configuration 和 @Component 区别一句话概括就是 @Configuration 中所有带 @Bean
- SpringBoot的主要目的是简化配置文件,通过少量配置即可运行Java程序,其强大的自动配置功能帮助开发者轻松实现配置装配,通过引入Sp
- 一、RequestMapping注解RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系RequestMappin
- 一、html代码 &n
- C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解。还有托管堆,栈,ref,out等等概念也是每个C#程序员
- 前言Android 从 4.0 开始就提供了手机录屏方法,但是需要 root 权限,比较麻烦不容易实现。但是从 5.0 开始,系统提供给了
- 使用第三方json转换工具,阿里巴巴json转换工具Fastjson1.2.7。https://www.jb51.net/softs/530
- 简介本文介绍Idea如何根据maven依赖名查找它是哪个pom.xml引入的。有时候会有这样的问题:我们知道项目里用了某个依赖,想知道它是项
- hi 大家好,今日,天气剧变,非常冷,不想出门,于是给大家写了篇文章,关于android final关键字及final,finally,fi
- 前言:先写个简单的地点签到功能,如果日后有时间细写的话,会更加好好研究一下百度地图api,做更多逻辑判断。这里主要是调用百度地图中的场景定位
- 先上效果图: 工具类在解析的过程中,我们会和byte做各种运算,所以我定义了一个byte工具类ByteUtils:using Sy
- 如何解决某个节点故障的问题?如何解决数据一致性的问题?如何解决数据倾斜的问题?CAP理论先从定义开始:C(Consistence):一致性所
- 先如今idea中的spring项目,springBoot的项目的开发一般都是基于maven创建的项目。这大大简化我我们对于各种依赖包的管理,
- 本文实例讲述了Android编程实现仿QQ发表说说,上传照片及弹出框效果。分享给大家供大家参考,具体如下:代码很简单,主要就是几个动画而已,
- 在工作过程中,需要将一个文件夹生成压缩文件,然后提供给用户下载。所以自己写了一个压缩文件的工具类。该工具类支持单个文件和文件夹压缩。放代码: