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

Posted

技术标签:

【中文标题】当我尝试使用新的 Gradle 7 版本目录时出现未知属性错误【英文标题】:Getting unknown property error when I try to use new Gradle 7 version catalogs 【发布时间】:2021-09-28 12:23:58 【问题描述】:

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

我遇到了错误

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

无法为 org.gradle.accessors.dm.LibrariesForLibs 类型的扩展“libs”获取未知属性“testDependencies”。

我做了什么

    通过 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>
    在他们说应该去的地方添加版本目录定义(确切的内容在博客文章中)
    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
    启用预览功能
    echo "enableFeaturePreview('VERSION_CATALOGS')" >/tmp/stuff
    cat settings.gradle >> /tmp/stuff
    cp /tmp/stuff settings.gradle 

然后我将这个 (WRONG) 行添加为我的依赖项 块中的最后一行(请参阅接受的答案以进行更正):

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢,Thomas.. 我附上了赏金。非常感激。我想我需要等待 24 小时才能将其奖励给您。

以上是关于当我尝试使用新的 Gradle 7 版本目录时出现未知属性错误的主要内容,如果未能解决你的问题,请参考以下文章

生成APK(签名)升级gradle版本时出现问题

尝试在 IntelliJ 上构建 gradle 项目时出现错误代码 B0

当我尝试同步我的 Gradle 文件时出现错误

当我尝试连接到 mongodb 时出现这些错误

当我尝试连接到 mongodb 时出现这些错误

MySQL 7.0.6-IR3 版本尝试连接数据库时出现问题