You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Gradle processResources仅替换Spring Boot application.yml的version属性

仅用Gradle替换application.yml中的version变量方案

实现思路

Gradle默认的processResources会替换所有${xxx}格式变量,我们可以通过精准指定替换属性,只处理version变量,让${SPRING_PROFILES_ACTIVE}这类需要Kubernetes注入的变量保持原样。

具体配置

在项目的build.gradle(Groovy)或build.gradle.kts(Kotlin)中修改processResources任务:

Groovy DSL 配置

processResources {
    // 仅对application.yml文件生效
    filesMatching('application.yml') {
        // 只传入version属性进行替换,其他${}变量不处理
        expand(version: project.version)
    }
}

Kotlin DSL 配置

tasks.processResources {
    filesMatching("application.yml") {
        expand(mapOf("version" to project.version))
    }
}

关键说明

  • filesMatching:限定作用范围为application.yml,避免误改其他资源文件
  • expand方法:仅传入version属性,Gradle只会识别并替换${version},其他${xxx}格式内容会原封不动保留,确保后续Kubernetes能正常注入环境变量。

验证步骤

执行Gradle构建后,查看build/resources/main/application.yml:

  • spring.application.version会被替换为gradle.properties中定义的0.1.0
  • ${SPRING_PROFILES_ACTIVE}等变量保持原有格式不变

内容的提问来源于stack exchange,提问作者sdbol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:59:57