如何使用Gradle实现类似Maven的profiles功能
版本说明
- GraalVM JDK 21.0.3
- Gradle 8.7
- 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,否则不会生效!!!

打包输出到控制台的命令可以查看配置有没有生效

查看文件是否符合预期

到此这篇关于Gradle实现类似Maven的profiles功能的文章就介绍到这了,更多相关Gradle profiles功能内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Mybatis plus Dynamic Datasource 动态数据源及使用
dynamic-datasource-spring-boot-starter是一个基于springboot的快速集成多数据源的启动器,它跟mybatis-plus是一个生态圈里的,很容易集成mybatis-plus,本文介绍Mybatis plus Dynamic Datasource 动态数据源的相关知识,感兴趣的朋友一起看看吧2025-09-09
idea2020安裝MybatisCodeHelper插件的图文教程
这篇文章主要介绍了idea2020安裝MybatisCodeHelper插件的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09
SpringBoot制作Docker镜像接入SkyWalking的详细过程
本文通过实际操作完成了如何基于springboot项目接入skyalking的详细过程,并进一步将springboot项目制作容器对接skyalking的详细操作,感兴趣的朋友一起看看吧2025-05-05
Hibernate Validation自定义注解校验的实现
这篇文章主要介绍了Hibernate Validation自定义注解校验的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04


最新评论