如何使用Gradle實(shí)現(xiàn)類似Maven的profiles功能
版本說明
- GraalVM JDK 21.0.3
- Gradle 8.7
- Spring Boot 3.2.5
目錄結(jié)構(gòu)

指定環(huán)境打包
application.yml/yaml/properties
執(zhí)行 bootJar 打包命令前要先執(zhí)行 clean【其它和 processResources 相關(guān)的命令也要先執(zhí)行 clean】,否則 active 值不會(huì)變!
spring:
profiles:
# 執(zhí)行 bootJar 打包命令前要先執(zhí)行 clean【其它和 processResources 相關(guān)的命令也要先執(zhí)行 clean】,否則 active 值不會(huì)變!
active: @activeProfiles@build.gradle 修改 processResources 任務(wù)
def activeProfiles = project.properties['activeProfiles'] ?: "dev"
processResources {
exclude {
FileTreeElement details ->
{
(//排除不是當(dāng)前環(huán)境的 yml 配置文件
details.file.name.startsWith("application-")
&& details.file.name.endsWith(".yml")
&& !details.file.name.equals("application.yml")
&& !details.file.name.equals("application-" + activeProfiles + ".yml")
) || (//排除不是當(dāng)前環(huán)境的 yaml 配置文件
details.file.name.startsWith("application-")
&& details.file.name.endsWith(".yaml")
&& !details.file.name.equals("application.yaml")
&& !details.file.name.equals("application-" + activeProfiles + ".yaml")
) || (//排除不是當(dāng)前環(huán)境的 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
]
}打包
因?yàn)闆]有指定環(huán)境,默認(rèn)dev

可以先在build/resources/main目錄下查看是否只包含對(duì)應(yīng)環(huán)境的文件


jar包里的文件和變量也對(duì)的上

指定test環(huán)境打包

bootJar追加application.yml配置的spring.profiles.active的@activeProfiles@變量名并指定環(huán)境為test后點(diǎn)ok保存

先clean再bootJar,否則不會(huì)生效?。?!

打包輸出到控制臺(tái)的命令可以查看配置有沒有生效

查看文件是否符合預(yù)期

到此這篇關(guān)于Gradle實(shí)現(xiàn)類似Maven的profiles功能的文章就介紹到這了,更多相關(guān)Gradle profiles功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Gradle使用Maven倉(cāng)庫(kù)的方法
- gradle使用maven-publish發(fā)布jar包上傳到私有maven配置
- IDEA配置java開發(fā)環(huán)境(maven、gradle、tomcat)
- 如何使用gradle將java項(xiàng)目推送至maven中央倉(cāng)庫(kù)
- Gradle相對(duì)于Maven有哪些優(yōu)點(diǎn)
- Java?Maven構(gòu)建工具中mvnd和Gradle誰更快
- gradle和maven打包時(shí)排除application.properties問題
- Gradle中Maven倉(cāng)庫(kù)配置的實(shí)現(xiàn)步驟
相關(guān)文章
Mybatis plus Dynamic Datasource 動(dòng)態(tài)數(shù)據(jù)源及使用
dynamic-datasource-spring-boot-starter是一個(gè)基于springboot的快速集成多數(shù)據(jù)源的啟動(dòng)器,它跟mybatis-plus是一個(gè)生態(tài)圈里的,很容易集成mybatis-plus,本文介紹Mybatis plus Dynamic Datasource 動(dòng)態(tài)數(shù)據(jù)源的相關(guān)知識(shí),感興趣的朋友一起看看吧2025-09-09
idea2020安裝MybatisCodeHelper插件的圖文教程
這篇文章主要介紹了idea2020安裝MybatisCodeHelper插件的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
SpringBoot制作Docker鏡像接入SkyWalking的詳細(xì)過程
本文通過實(shí)際操作完成了如何基于springboot項(xiàng)目接入skyalking的詳細(xì)過程,并進(jìn)一步將springboot項(xiàng)目制作容器對(duì)接skyalking的詳細(xì)操作,感興趣的朋友一起看看吧2025-05-05
Hibernate Validation自定義注解校驗(yàn)的實(shí)現(xiàn)
這篇文章主要介紹了Hibernate Validation自定義注解校驗(yàn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
springboot整合redis進(jìn)行數(shù)據(jù)操作(推薦)
springboot整合redis比較簡(jiǎn)單,并且使用redistemplate可以讓我們更加方便的對(duì)數(shù)據(jù)進(jìn)行操作。下面通過本文給大家分享springboot整合redis進(jìn)行數(shù)據(jù)操作的相關(guān)知識(shí),感興趣的朋友一起看看吧2017-10-10

