【问题标题】:Dependency version not resolved from ext block build.gradle未从 ext 块 build.gradle 解析依赖版本
【发布时间】:2020-05-06 15:19:09
【问题描述】:

我在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'

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

【问题讨论】:

    标签: java gradle dependencies


    【解决方案1】:

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

    如果您想在 'ext' 属性中定义版本,则可以使用 version: boxableVersion 直接引用此属性(通过“groovy 魔法”直接在脚本中提供 ext 属性),或者您可以使用 Groovy String interpolation 表示法(请注意双引号 "

     version: "${boxableVersion}"
    

    或者,以更简单的方式:

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

    【讨论】:

      【解决方案2】:

      试试吧:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        • 2019-04-02
        • 1970-01-01
        • 2021-02-07
        • 2020-07-13
        • 1970-01-01
        • 2019-08-21
        相关资源
        最近更新 更多