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

Gradle实现类似Maven的profiles功能

版本说明

  1. GraalVM JDK 21.0.3
  2. Gradle 8.7
  3. Spring Boot 3.2.5

目录结构

在这里插入图片描述

指定环境打包

application.yml/yaml/properties

执行 bootJar 打包命令前要先执行 clean【其它和 processResources 相关的命令也要先执行 clean】,否则 active 值不会变!

spring:profiles:# 执行 bootJar 打包命令前要先执行 clean【其它和 processResources 相关的命令也要先执行 clean】,否则 active 值不会变!active: @activeProfiles@

build.gradle 修改 processResources 任务

def activeProfiles = project.properties['activeProfiles'] ?: "dev"
processResources {exclude {FileTreeElement details ->{(//排除不是当前环境的 yml 配置文件details.file.name.startsWith("application-")&& details.file.name.endsWith(".yml")&& !details.file.name.equals("application.yml")&& !details.file.name.equals("application-" + activeProfiles + ".yml")) || (//排除不是当前环境的 yaml 配置文件details.file.name.startsWith("application-")&& details.file.name.endsWith(".yaml")&& !details.file.name.equals("application.yaml")&& !details.file.name.equals("application-" + activeProfiles + ".yaml")) || (//排除不是当前环境的 properties 配置文件details.file.name.startsWith("application-")&& details.file.name.endsWith(".properties")&& !details.file.name.equals("application.properties")&& !details.file.name.equals("application-" + activeProfiles + ".properties"))}}filter ReplaceTokens, tokens: [activeProfiles: activeProfiles]
}

打包

因为没有指定环境,默认dev
在这里插入图片描述

可以先在build/resources/main目录下查看是否只包含对应环境的文件

在这里插入图片描述
在这里插入图片描述
jar包里的文件和变量也对的上
在这里插入图片描述

指定test环境打包

在这里插入图片描述
bootJar追加application.yml配置的spring.profiles.active的@activeProfiles@变量名并指定环境为test后点ok保存
在这里插入图片描述
先clean再bootJar,否则不会生效!!!
在这里插入图片描述
打包输出到控制台的命令可以查看配置有没有生效
在这里插入图片描述
查看文件是否符合预期
在这里插入图片描述

http://www.lryc.cn/news/373181.html

相关文章:

  • 【强化学习】gymnasium自定义环境并封装学习笔记
  • TLE9879的基于Arduino调试板SWD刷写接口
  • 基于 Delphi 的前后端分离:之五,使用 HTMX 让页面元素组件化之面向对象的Delphi代码封装
  • 讲透计算机网络知识(实战篇)01——计算机网络和协议
  • 8个宝藏APP,个个都牛逼哈拉!
  • 使用docker构建java应用
  • Oracle 存储过程
  • 下载站名文件
  • 345453
  • Java操作redis
  • 【数据结构(邓俊辉)学习笔记】图03——拓扑排序
  • C#参数使用场景简要说明
  • 线性代数|机器学习-P10最小二乘法的四种方案
  • 【Android面试八股文】你能描述一下JVM中的类加载过程吗?
  • MYSQL八、MYSQL的SQL优化
  • 鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS
  • 【ARMv8/ARMv9 硬件加速系列 3 -- SVE 指令语法及编译参数详细介绍】
  • Java版+ SaaS应用+接口技术RESTful API 技术开发的智慧医院HIS系统源码 专注医院管理系统研发 支持二开
  • 工业机器人远程运维,增强智慧工厂运营管理
  • 理解Python的元类
  • web前端黑马下载:探索学习资源的海洋
  • 最新版jd-gui下载
  • (051)FPGA时钟--->(001)时钟介绍
  • Java程序员英语单词通关:
  • 数据库开发-Mysql03
  • 0-1 背包问题(动态规划 查询背包元素)
  • elasticsearch快照生成与恢复
  • 178.二叉树:最大二叉树(力扣)
  • 跨境电商中的IP隔离是什么?怎么做?
  • 【C++】stack、queue和deque的使用