Gradle 9 warning: Declaring dependencies using multi-string notation has been deprecated
Message and partial stack trace:
> Declaring dependencies using multi-string notation has been deprecated. This will fail with an error in Gradle 10. Please use single-string notation instead: "build.buf:buf:1.53.0:linux-x86_64@exe". Consult the upgrading guide for further information: https://docs.gradle.org/9.2.1/userguide/upgrading_version_9.html#dependency_multi_string_notation
at org.gradle.api.internal.notations.DependencyMapNotationConverter.parseMap(DependencyMapNotationConverter.java:72)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.gradle.internal.typeconversion.MapNotationConverter.parseType(MapNotationConverter.java:94)
at org.gradle.internal.typeconversion.MapNotationConverter.parseType(MapNotationConverter.java:41)
at org.gradle.internal.typeconversion.TypedNotationConverter.convert(TypedNotationConverter.java:43)
at org.gradle.internal.typeconversion.CompositeNotationConverter.convert(CompositeNotationConverter.java:34)
at org.gradle.internal.typeconversion.NotationConverterToNotationParserAdapter.parseNotation(NotationConverterToNotationParserAdapter.java:31)
at org.gradle.internal.typeconversion.ErrorHandlingNotationParser.parseNotation(ErrorHandlingNotationParser.java:48)
at org.gradle.api.internal.artifacts.DefaultDependencyFactory.createDependency(DefaultDependencyFactory.java:74)
at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.create(DefaultDependencyHandler.java:168)
at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.doAddRegularDependency(DefaultDependencyHandler.java:197)
at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.doAdd(DefaultDependencyHandler.java:192)
at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.add(DefaultDependencyHandler.java:120)
at org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.add(DefaultDependencyHandler.java:114)
at org.gradle.kotlin.dsl.support.delegates.DependencyHandlerDelegate.add(DependencyHandlerDelegate.kt:53)
at build.buf.gradle.BufSupportKt$configureBufDependency$1.invoke(BufSupport.kt:48)
at build.buf.gradle.BufSupportKt$configureBufDependency$1.invoke(BufSupport.kt:47)
at org.gradle.kotlin.dsl.ProjectExtensionsKt.dependencies(ProjectExtensions.kt:167)
at build.buf.gradle.BufSupportKt.configureBufDependency(BufSupport.kt:47)
at build.buf.gradle.BufPlugin$configureBuf$1.execute(BufPlugin.kt:45)
at build.buf.gradle.BufPlugin$configureBuf$1.execute(BufPlugin.kt:44)
...
The warnings points to [BufSupport.kt](https://github.com/bufbuild/buf-gradle-plugin/blob/3f5f73286cbe99bdd7259531c881b3d41b92be0a/src/main/kotlin/build/buf/gradle/BufSupport.kt#L47-L58):
```kotlin
dependencies {
add(
BUF_BINARY_CONFIGURATION_NAME,
mapOf(
"group" to "build.buf",
"name" to "buf",
"version" to extension.toolVersion,
"classifier" to "$osPart-$archPart",
"ext" to "exe",
),
)
}
```
Based on the documentation, it can be fixed in at least two ways:
1. Build the dependency string by concatenating strings
2. Use a [dependency factory](https://docs.gradle.org/9.2.1/javadoc/org/gradle/api/artifacts/dsl/DependencyFactory.html#create(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)) to create the dependency string (added in Gradle 7.6)
关闭于 2026-01-02 0 条评论