当我尝试使用新的 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 版本目录时出现未知属性错误的主要内容,如果未能解决你的问题,请参考以下文章