当我尝试使用新的 Gradle 7 版本目录时出现未知 属性 错误

Getting unknown property error when I try to use new Gradle 7 version catalogs

我尝试实现最简单的示例以更好地理解 Gradle 7个版本目录。我使用 'gradle init' 生成了一个新的应用程序, 然后我按照本博客 post 中介绍的步骤进行操作 -> https://melix.github.io/blog/2021/03/version-catalogs.html 尽我所能。 结果,当我尝试将项目导入 Intellij 时(以及当我在项目的根目录下简单地 运行 'gradlew test' 时)是错误的 以下。我猜更有可能是 功能有效,我做了一些愚蠢的事情,而不是功能坏了。任何 一双敏锐的眼睛,能帮我找出蠢货吗?

我收到错误

评估项目“:app”时出现问题。

Could not get unknown property 'testDependencies' for extension 'libs' of type org.gradle.accessors.dm.LibrariesForLibs.

我做了什么

  1. 通过 gradle init 生成一个简单的 Gradle 示例应用程序,如下所示:

    Select type of project to generate:
      1: basic
      2: application
      3: library
      4: Gradle plugin
    Enter selection (default: basic) [1..4] 2<RETURN>

    Select implementation language:
      1: C++
      2: Groovy
      3: Java
      4: Kotlin
      5: Scala
      6: Swift
    Enter selection (default: Java) [1..6] 5<RETURN>

    Split functionality across multiple subprojects?:
      1: no - only one application project
      2: yes - application and library projects
    Enter selection (default: no - only one application project) [1..2] 1<RETURN>

    Select build script DSL:
      1: Groovy
      2: Kotlin
    Enter selection (default: Groovy) [1..2] 1<RETURN>

    Project name (default: stacko):<RETURN>
    Source package (default: stacko):<RETURN>
  1. 在他们说的地方添加版本目录定义(与博客 [​​=49=] 中的内容完全相同)
    cat <<EOF >gradle/libs.versions.toml 
    [libraries]
    guava = "com.google.guava:guava:30.0-jre"
    junit-jupiter = "org.junit.jupiter:junit-jupiter-api:5.7.1"
    junit-engine = { module="org.junit.jupiter:junit-jupiter-engine" }

    [bundles]
    testDependencies = ["junit-jupiter", "junit-engine"]
    EOF
  1. 启用预览功能
    echo "enableFeaturePreview('VERSION_CATALOGS')" >/tmp/stuff
    cat settings.gradle >> /tmp/stuff
    cp /tmp/stuff settings.gradle 

然后我将此(错误)行添加为我的 dependencies { } 块中的最后一行(请参阅已接受的答案进行更正):

testImplementation(libs.testDependencies)
  1. 尝试导入 Intellij 并出现上面的 ERROR I GOT 中显示的错误。

libs.testDependencies 替换为 libs.bundles.testDependencies 即可。可能是博客中的拼写错误 post 或最后一刻的更改。 Dependency Bundles 文档是正确的。