[Gradle] Don't detect multiple plugin instances with project isolation enabled
#KT-55164 In Progress #KT-52625 In Progress
This commit is contained in:
committed by
Space Team
parent
08c8d3ec03
commit
61cac14ed7
+5
-2
@@ -51,10 +51,10 @@ import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropKlibLibraryEl
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool
|
||||
import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestsRegistry
|
||||
import org.jetbrains.kotlin.gradle.tooling.registerBuildKotlinToolingMetadataTask
|
||||
import org.jetbrains.kotlin.gradle.utils.*
|
||||
import org.jetbrains.kotlin.gradle.utils.addGradlePluginMetadataAttributes
|
||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||
import org.jetbrains.kotlin.gradle.utils.getOrPut
|
||||
import org.jetbrains.kotlin.gradle.utils.loadPropertyFromResources
|
||||
import org.jetbrains.kotlin.gradle.utils.runProjectConfigurationHealthCheck
|
||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||
import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion
|
||||
@@ -92,7 +92,10 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin {
|
||||
addGradlePluginMetadataAttributes(project)
|
||||
}
|
||||
|
||||
KotlinGradleBuildServices.registerIfAbsent(project.gradle).get().detectKotlinPluginLoadedInMultipleProjects(project, kotlinPluginVersion)
|
||||
val kotlinGradleBuildServices = KotlinGradleBuildServices.registerIfAbsent(project.gradle).get()
|
||||
if (!isProjectIsolationEnabled(project.gradle)) {
|
||||
kotlinGradleBuildServices.detectKotlinPluginLoadedInMultipleProjects(project, kotlinPluginVersion)
|
||||
}
|
||||
|
||||
BuildMetricsService.registerIfAbsent(project)?.also { buildMetricsService ->
|
||||
val buildEventsListenerRegistryHolder = BuildEventsListenerRegistryHolder.getInstance(project)
|
||||
|
||||
+7
@@ -13,6 +13,13 @@ import org.gradle.api.provider.Provider
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.configurationTimePropertiesAccessor
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.usedAtConfigurationTime
|
||||
|
||||
internal fun isProjectIsolationEnabled(gradle: Gradle) =
|
||||
try {
|
||||
(gradle.startParameter as? StartParameterInternal)?.isolatedProjects?.get()
|
||||
} catch (_: IncompatibleClassChangeError) {
|
||||
null
|
||||
} ?: false
|
||||
|
||||
internal fun isConfigurationCacheAvailable(gradle: Gradle) =
|
||||
try {
|
||||
val startParameters = gradle.startParameter
|
||||
|
||||
Reference in New Issue
Block a user