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

如何在settings.gradle中访问build.gradle定义的ext变量

Gradle settings.gradle读取build.gradle定义的ext变量失效解决方案

Gradle构建生命周期的初始化阶段会优先加载settings.gradle,完成项目结构识别后才会解析根目录及子项目的build.gradle文件。你在根项目build.gradle中定义的ext变量属于配置阶段才会生成的属性,初始化阶段还不存在,因此所有读取尝试都会失效。

方案1:使用gradle.properties定义全局属性(推荐)

gradle.properties中的属性会在初始化阶段最开始被加载,可同时在settings.gradle和所有build.gradle中直接访问,适合管理全局版本号这类需要多处复用的配置:

  1. 在项目根目录新建/编辑gradle.properties,添加配置:
foo=myVersion
  1. 调整settings.gradle中的插件引用写法:
plugins {
    id("myPlugin").version(foo)
    // 字符串拼接场景也可写为 version("${foo}")
}

方案2:直接在settings.gradle中定义ext变量

如果该变量仅需要在settings.gradle中使用,可直接在settings文件头部定义ext属性:

// settings.gradle头部定义
ext {
    foo = "myVersion"
}

plugins {
    id("myPlugin").version(foo)
}

后续根项目build.gradle如果需要使用这个变量,可以通过settings.ext.foo读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:36:07