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

如何从build.gradle文件中获取版本变量到Java Spring Boot控制器?

如何从build.gradle中获取版本变量

我来帮你梳理两种常见的场景,看你对应哪种需求:

场景1:在build.gradle脚本内部使用版本变量

如果是你自己在Gradle脚本里定义的版本变量,比如这样:

// 自定义变量
def appVersion = "1.2.3"
// 或者用Gradle自带的version属性
version = "1.2.3"

在脚本内部直接引用就行:

  • 自定义变量直接用appVersion
  • Gradle自带的version属性,用project.version或者直接version都可以

举个例子,在任务里打印版本:

task printAppVersion {
    doLast {
        println "当前应用版本: ${appVersion}"
        println "当前项目版本: ${version}"
    }
}

场景2:在应用程序中获取Gradle里的版本变量(类似从application.properties取值的方式)

如果是想在Java/Spring Boot代码里获取Gradle中定义的版本,你可以通过Gradle把版本注入到配置文件,之后用熟悉的方式读取:

  1. 首先在build.gradle里定义版本:
// 方式1:用Gradle自带的version属性
version = "1.2.3"

// 方式2:自定义扩展变量
ext {
    appVersion = "1.2.3"
}
  1. 在你的application.properties里添加占位符:
# 如果用Gradle自带的version
app.version=${version}

# 如果用自定义的appVersion变量
app.version=${appVersion}
  1. 配置Gradle的processResources任务来替换占位符:
processResources {
    // 替换配置文件中的占位符
    expand(project.properties)
    // 如果用自定义扩展变量,也可以显式传入
    // expand(appVersion: project.ext.appVersion)
}

这样构建项目时,Gradle会自动把占位符替换成实际的版本值,之后你就可以像之前一样用@Value("${app.version}")在代码里获取这个版本了。

补充:如果是Spring Boot项目,其实还有更简便的方式——Spring Boot Gradle插件会自动把项目的version属性暴露为环境变量,你直接在代码里用@Value("${version}")就能获取到Gradle中设置的版本值,不需要额外配置processResources。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:09:04