blob: 40db563d66cd0cf44930461b86c034076a706763 [file] [log] [blame]
import org.gradle.api.*
import org.gradle.api.file.*
import org.gradle.api.plugins.*
import org.gradle.api.tasks.*
import org.gradle.api.tasks.testing.*
import org.gradle.jvm.tasks.*
import org.jetbrains.kotlin.gradle.plugin.*
/*
* Copyright 2017-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
object JavaPluginUtil {
@JvmStatic
fun Project.applyJavaPlugin() {
plugins.apply("java")
plugins.withId("org.jetbrains.kotlin.multiplatform") {
listOf(
JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME,
JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME
).forEach { outputConfigurationName ->
configurations.findByName(outputConfigurationName)?.isCanBeConsumed = false
}
disableJavaPluginTasks(extensions.getByName("sourceSets") as SourceSetContainer)
}
}
}
private fun Project.disableJavaPluginTasks(javaSourceSet: SourceSetContainer) {
project.tasks.withType(Jar::class.java).named(javaSourceSet.getByName("main").jarTaskName).configure {
dependsOn("jvmTest")
enabled = false
}
project.tasks.withType(Test::class.java).named(JavaPlugin.TEST_TASK_NAME) {
dependsOn("jvmJar")
enabled = false
}
}