当前位置: 首页 > news >正文

maven-profile实现springboot多版本配置打包

在进行项目开发时,我们经常需要写多个项目的配置文件,以满足不同环境下使用,如dev,prod…

在使用maven进行项目打包时,我们就需要指定相应的配置文件。

在这我们通过maven profile的方式对多版本的配置文件进行管理。

首先新建一个普通的springboot项目,并新建多个配置文件,如application.yamlapplication-dev.yamlapplication-prod.yaml

在三个配置文件中分别对端口号进行配置808080818082

此时,我们在maven中对多个版本的配置文件进行管理。pom.xml如下:

<profiles><profile><id>default</id><properties><activatedProfile></activatedProfile></properties><!-- 默认激活 --><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>dev</id><properties><!-- 指定要激活的yaml文件 --><activatedProfile>dev</activatedProfile></properties></profile><profile><id>prod</id><properties><activatedProfile>prod</activatedProfile></properties></profile>
</profiles><!-- 配置静态资源过滤 -->
<build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources>
</build>

application.yaml中进行配置:

server:port: 8080
spring:profiles:active: '@activatedProfile@'  # 读取激活的配置

我们编写一个controller进行测试:

@RestController
public class TestController {@RequestMapping(value = "/test",method = RequestMethod.GET)public String test(){return "test";}
}

测试

在使用maven对项目进行打包时,可以对配置文件进行选择。

image-20250919143314536

  • 不勾选任何配置,直接进行项目打包。

    打包完成后,执行命令java -jar maven-profile-0.0.1-SNAPSHOT.jar运行项目。成功启动项目后,访问http://localhost:8080/test成功。

    这是因为,我们在pom.xml中配置了默认激活default环境,也就是application.yaml

  • 当我们勾选prod对项目进行打包时,打包后再次启动项目。

    打包完成后,执行命令java -jar maven-profile-0.0.1-SNAPSHOT.jar运行项目。成功启动项目后,访问http://localhost:8082/test成功。成功激活了application-prod.yaml

http://www.dtcms.com/a/390965.html

相关文章:

  • OpenLayers地图交互 -- 章节二:绘制交互详解:从基础几何到复杂图形的完整绘制方案
  • Java 工厂模式 + 策略模式实战:工具管理器的设计与实现
  • 污水处理厂远程调试与智能化运维解决方案
  • 【提示工程】Ch2-提示技术(Prompt Technique)
  • vLLM - Worker
  • GitHub上面仓库名写错了,怎么改
  • 项目中的图形验证码是前端还是后端实现?
  • ✅ 基于Scrapy与朴素贝叶斯的校园舆情监测与预警系统 Django+B/S架构 可视化大屏 机器学习
  • Unity UI 插件 | Easy Popup System
  • AI证件照制作 API 快速生成证件照
  • @RequestParam和 @RequestBody能一起用吗
  • 构建高效的电商爬虫代理池:从架构设计到实战优化
  • 使用cJSON库实现JSON与C结构体的互转
  • Cursor :Python 运行路径设置自定义模块导入报错:No module named ‘xxx’ 的解决方案
  • 数图信息科技亮相唐山社区零售论坛,数字化赋能行业高质量发展
  • LLM大模型 - 实战篇 - Assistant API 原理与实战应用
  • python微博舆情分析系统 情感分析 爬虫 机器学习 新浪微博 数据采集 大数据技术(源码)✅
  • FreeRTOS消息队列剖析讲解(思路+源码)
  • Trillium Engineering-无人机万向节有效负载 - 用于战术 UAS 的 EO 和 EO/IR 无人机相机万向节
  • 【Linux网络】Socket编程预备
  • pyAutoGUI 模块主要功能介绍-(4)消息框功能
  • 自学嵌入式第四十三天:硬件方面-ARM体系架构
  • PDF清晰度提升的幕后英雄:ImprovePdf
  • 《中国垒球规则》快投垒球局面规则·垒球5号位
  • Spring Boot 快速入门:构建企业级微服务架构
  • 【论文阅读】 WebDancer: Towards Autonomous Information Seeking Agency
  • MySQL集群运维
  • 未来浏览器:重新定义信息获取与交互
  • Mybatis-plus插件功能
  • weex分析美联储降息新周期:市场迎来机遇与挑战