| 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 |
| } |
| } |