首页 > 解决方案 > 未从 ext 块 build.gradle 解析依赖版本

问题描述

我像这样在我的build.gradle文件中添加了一些依赖项

ext {
  boxableVersion = '1.5.bq'
}
dependencies {
  implementation group: "com.github.dhorions", name:'boxable', version:${boxableVersion}
}

在我将 JDK 版本从 1.8 更改为 11 之前,它一直在无缝工作。现在,当我尝试构建项目时,我的build.gradle文件中出现以下错误

无法使用 Gradle 分发版“ https://services.gradle.org/distributions/gradle-6.0-bin.zip ”运行分阶段构建操作。构建文件“/home/christine/christine/projectsFromGit/pdfcreator/build.gradle”行:43 评估根项目“pdfcreator”时出现问题。在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [build_4fl1snfk49qgbmumnf1gg989h$_run_closure3$_closure11@d7c9f2a] 的方法 $()。

如果我像这样直接给出版本,则项目正在成功构建

implementation group: "com.github.dhorions", name:'boxable', version:'1.5.bq'

我怎样才能像以前一样在外部提供版本?

标签: javagradledependencies

解决方案


您的依赖项声明中的以下语法version:${boxableVersion}无效。它与您的 JDK 版本无关,只是${...}在 Gradle DSL 或 Groovy 语法中没有任何意义。

如果你想在 'ext' 属性中定义版本,你可以直接引用这个属性version: boxableVersion(ext 属性通过“groovy 魔法”直接在脚本中可用),或者你可以使用 Groovy字符串插值表示法(请注意双引号"

 version: "${boxableVersion}"

或者,以更简单的方式:

implementation "com.github.dhorions:boxable:${boxableVersion}"

推荐阅读