Eug
02/10/2026, 2:34 PMA problem occurred configuring project ':buildSrc'.
> Could not resolve all artifacts for configuration 'classpath'.
> Could not resolve org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.2.21
Required by:
buildscript of project ':buildSrc' > org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:2.2.21 > org.jetbrains.kotlin:kotlin-serialization:2.3.0 > org.jetbrains.kotlin:kotlin-gradle-plugins-bom:2.3.0> Unable to find a variant with the requested capability: coordinates 'org.jetbrains.kotlin:kotlin-gradle-plugin-api-gradle813':
- Variant 'apiElementsWithFixedAttribute' provides 'org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.3.0'
- Variant 'gradle80ApiElements' provides 'org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.3.0'
- Variant 'gradle80JavadocElements' provides 'org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.3.0'
- Variant 'gradle80RuntimeElements' provides 'org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.3.0'Eug
02/10/2026, 2:35 PMEug
02/10/2026, 2:35 PMEug
02/10/2026, 2:37 PMEug
02/10/2026, 2:40 PMbuildSrc only kotlin coroutines and serialisationMartin
02/10/2026, 3:02 PMMartin
02/10/2026, 3:03 PM9.4.0-rc-1, right? 9.4.0 isn't out yet AFAIKEug
02/10/2026, 3:05 PMMartin
02/10/2026, 3:05 PMorg.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:2.2.21 > org.jetbrains.kotlin:kotlin-serialization:2.3.0
That's interesting. Something is upgrading your version of the serialization pluginEug
02/10/2026, 3:06 PMMartin
02/10/2026, 3:06 PM./gradlew -p buildSrc buildEnvironmentMartin
02/10/2026, 3:07 PMMartin
02/10/2026, 3:07 PMbuildEnvironment thingEug
02/10/2026, 3:32 PMMartin
02/10/2026, 3:37 PMMartin
02/10/2026, 3:37 PMbuildSrc/build.gradle.kts like?Eug
02/10/2026, 3:39 PMimport org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
`java-gradle-plugin`
`kotlin-dsl`
alias(libs.plugins.android.lint)
alias(libs.plugins.kotlin.serialization)
}
gradlePlugin {
// bunch of our plugins
}
dependencies {
implementation(libs.androidgradleplugin)
implementation(libs.android.gradle.cache.fix)
implementation(libs.kotlin.gradle.plugin)
implementation(libs.kotlinpoet)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.serialization.xml)
implementation(platform(libs.retrofit.bom))
implementation(libs.retrofit)
implementation(libs.retrofit.converter.kotlinx.serialization)
// phrase java client
implementation(libs.phrase.java)
// start of dependencies of phrase java client
implementation(libs.javax.annotation.api)
implementation(libs.findbugs)
// added because DataDog needs newer version of okhttp
implementation(platform(libs.okhttp.bom))
implementation(libs.okhttp)
implementation(libs.okhttp.logging.interceptor)
implementation(libs.gson)
implementation(libs.gson.fire)
// end of dependencies of phrase java client
testImplementation(libs.junit)
lintChecks(libs.gradle.lint.rules)
}
tasks.withType(KotlinCompile::class.java) {
compilerOptions {
freeCompilerArgs.addAll(
// Kotlin annotation changes <https://youtrack.jetbrains.com/issue/KT-73255>
"-Xannotation-default-target=param-property",
// If data class has private constructor then copy is private also
"-Xconsistent-data-class-copy-visibility",
)
}
}Vampire
02/10/2026, 3:39 PMkotlin-serialization:2.3.0 which is an update from 2.2.21 for some reasonMartin
02/10/2026, 3:41 PMkotlin-dslEug
02/10/2026, 3:41 PM`kotlin-dsl`
alias(libs.plugins.kotlin.serialization)Eug
02/10/2026, 3:41 PMMartin
02/10/2026, 3:42 PMVampire
02/10/2026, 3:43 PMVampire
02/10/2026, 3:44 PMkotlin-dsl depends on 2.3.0, yesVampire
02/10/2026, 3:46 PMembeddedKotlinVersion instead, but then without version catalog iircEug
02/10/2026, 3:54 PMEug
02/10/2026, 3:55 PMEug
02/10/2026, 3:55 PMEug
02/10/2026, 3:56 PMVampire
02/10/2026, 3:56 PMbuildSrc you develop build logic for the Gradle version that is running.
So best is to use the embedded Kotlin version.
The kotlin-dsl plugin does.
But you apply a different version of the serialization plugin which might lead to a conflict here.Vampire
02/10/2026, 3:56 PMembeddedKotlinVersion for the serialization plugin, you might not have had the problem.Martin
02/10/2026, 3:56 PMVampire
02/10/2026, 3:57 PMkotlin-dsl as Martin suggests, even though I greatly dislike that suggestion in generalEug
02/10/2026, 3:57 PMMartin
02/10/2026, 3:57 PMNowandroid uses kotlin dslInterestingly, they backtracked on precompiled script plugins because it was slow
Martin
02/10/2026, 3:57 PMembedded-kotlinEug
02/10/2026, 4:00 PMVampire
02/10/2026, 4:00 PMkotlin-dsl is not identical to precompiled script plugins, not even to Kotlin DSL precompiled script plugins.
That is just one aspect of kotlin-dsl.
If you have a performance problem with precompiled Kotlin DSL script plugins, you can just use "normal" KT files to write the plugins, but you can still use kotlin-dsl for its other benefits.
Even though you see the benefits as drawbacks, but you know that I greatly dislike that blog post and see it exactly the other way around than what is written there except for the performance thing if it is actually a problem for a project. 😉Martin
02/10/2026, 4:01 PMMartin
03/04/2026, 1:13 PMMartin
03/04/2026, 1:14 PMMartin
03/04/2026, 1:14 PMEug
03/04/2026, 1:18 PMMartin
03/05/2026, 5:59 PM