当我尝试使用新的 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.
我做了什么
- 通过 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>
- 在他们说的地方添加版本目录定义(与博客 [=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
- 启用预览功能
echo "enableFeaturePreview('VERSION_CATALOGS')" >/tmp/stuff
cat settings.gradle >> /tmp/stuff
cp /tmp/stuff settings.gradle
然后我将此(错误)行添加为我的 dependencies { } 块中的最后一行(请参阅已接受的答案进行更正):
testImplementation(libs.testDependencies)
- 尝试导入 Intellij 并出现上面的 ERROR I GOT 中显示的错误。
将 libs.testDependencies
替换为 libs.bundles.testDependencies
即可。可能是博客中的拼写错误 post 或最后一刻的更改。 Dependency Bundles 文档是正确的。
我尝试实现最简单的示例以更好地理解 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.
我做了什么
- 通过 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>
- 在他们说的地方添加版本目录定义(与博客 [=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
- 启用预览功能
echo "enableFeaturePreview('VERSION_CATALOGS')" >/tmp/stuff
cat settings.gradle >> /tmp/stuff
cp /tmp/stuff settings.gradle
然后我将此(错误)行添加为我的 dependencies { } 块中的最后一行(请参阅已接受的答案进行更正):
testImplementation(libs.testDependencies)
- 尝试导入 Intellij 并出现上面的 ERROR I GOT 中显示的错误。
将 libs.testDependencies
替换为 libs.bundles.testDependencies
即可。可能是博客中的拼写错误 post 或最后一刻的更改。 Dependency Bundles 文档是正确的。