您的位置:首页 > 财经 > 金融 > Gradle实现类似Maven的profiles功能

Gradle实现类似Maven的profiles功能

2024/11/19 14:19:01 来源:https://blog.csdn.net/weixin_43933728/article/details/139708674  浏览:    关键词: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,否则不会生效!!!
在这里插入图片描述
打包输出到控制台的命令可以查看配置有没有生效
在这里插入图片描述
查看文件是否符合预期
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com