@@ -3,8 +3,9 @@ import com.android.build.gradle.BaseExtension
33import com.android.build.gradle.BasePlugin
44import com.android.build.gradle.LibraryPlugin
55import com.google.devtools.ksp.gradle.KspExtension
6+ import com.google.devtools.ksp.gradle.KspGradleSubplugin
67import io.gitlab.arturbosch.detekt.extensions.DetektExtension
7- import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
8+ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
89
910plugins {
1011 alias(libs.plugins.android.application) apply false
@@ -35,19 +36,27 @@ allprojects {
3536 if (displayName.contains(" :biz:" ) || name.startsWith(" common" )) setupCommon() else setupBase()
3637 }
3738 }
38- plugins.withId(rootProject.libs.plugins.ksp.get().pluginId) {
39+ plugins.withType< KspGradleSubplugin >().configureEach {
3940 configure<KspExtension > {
4041 arg(" room.incremental" , " true" )
4142 }
4243 }
44+ // Configure Java to use our chosen language level. Kotlin will automatically pick this up.
45+ // See https://kotlinlang.org/docs/gradle-configure-project.html#gradle-java-toolchains-support
46+ plugins.withType<JavaBasePlugin >().configureEach {
47+ extensions.configure<JavaPluginExtension > {
48+ toolchain {
49+ languageVersion.set(JavaLanguageVersion .of(17 ))
50+ }
51+ }
52+ }
4353
44- tasks.withType<KotlinCompile > {
45- kotlinOptions {
46- allWarningsAsErrors = true
47- jvmTarget = JavaVersion .VERSION_17 .toString()
54+ tasks.withType<KotlinCompilationTask <* >>().configureEach {
55+ compilerOptions {
56+ allWarningsAsErrors.set(true )
4857 }
4958 }
50- tasks.withType<Test > {
59+ tasks.withType<Test >().configureEach {
5160 useJUnitPlatform()
5261 }
5362 tasks.withType<ValidatePlugins >().configureEach {
@@ -102,9 +111,10 @@ fun <T : BaseExtension> Project.setupBase(block: T.() -> Unit) {
102111 sourceSets.configureEach {
103112 java.srcDirs(" src/$name /kotlin" )
104113 }
114+ // Can remove this once https://issuetracker.google.com/issues/260059413 is fixed.
105115 compileOptions {
106- targetCompatibility( JavaVersion .VERSION_17 )
107- sourceCompatibility( JavaVersion .VERSION_17 )
116+ sourceCompatibility = JavaVersion .VERSION_17
117+ targetCompatibility = JavaVersion .VERSION_17
108118 }
109119 packagingOptions.resources.excludes + = setOf (
110120 " **/*.proto" ,
0 commit comments