Do not create multiple ErrorGradleScriptDefinitions
This commit is contained in:
+19
-6
@@ -43,6 +43,7 @@ import org.jetbrains.plugins.gradle.util.GradleConstants
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
|
import kotlin.collections.LinkedHashSet
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
import kotlin.script.dependencies.Environment
|
import kotlin.script.dependencies.Environment
|
||||||
import kotlin.script.dependencies.ScriptContents
|
import kotlin.script.dependencies.ScriptContents
|
||||||
@@ -96,24 +97,32 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD
|
|||||||
|
|
||||||
failedToLoad.set(false)
|
failedToLoad.set(false)
|
||||||
|
|
||||||
// KotlinBuildScript should be last because it has wide scriptFilePattern
|
val kotlinDslTemplates = LinkedHashSet<KotlinScriptDefinition>()
|
||||||
val kotlinDslTemplates = loadGradleTemplates(
|
|
||||||
|
loadGradleTemplates(
|
||||||
templateClass = "org.gradle.kotlin.dsl.KotlinInitScript",
|
templateClass = "org.gradle.kotlin.dsl.KotlinInitScript",
|
||||||
dependencySelector = kotlinDslDependencySelector,
|
dependencySelector = kotlinDslDependencySelector,
|
||||||
additionalResolverClasspath = kotlinDslAdditionalResolverCp
|
additionalResolverClasspath = kotlinDslAdditionalResolverCp
|
||||||
|
|
||||||
) + loadGradleTemplates(
|
).let { kotlinDslTemplates.addAll(it) }
|
||||||
|
|
||||||
|
loadGradleTemplates(
|
||||||
templateClass = "org.gradle.kotlin.dsl.KotlinSettingsScript",
|
templateClass = "org.gradle.kotlin.dsl.KotlinSettingsScript",
|
||||||
dependencySelector = kotlinDslDependencySelector,
|
dependencySelector = kotlinDslDependencySelector,
|
||||||
additionalResolverClasspath = kotlinDslAdditionalResolverCp
|
additionalResolverClasspath = kotlinDslAdditionalResolverCp
|
||||||
|
|
||||||
) + loadGradleTemplates(
|
).let { kotlinDslTemplates.addAll(it) }
|
||||||
|
|
||||||
|
// KotlinBuildScript should be last because it has wide scriptFilePattern
|
||||||
|
loadGradleTemplates(
|
||||||
templateClass = "org.gradle.kotlin.dsl.KotlinBuildScript",
|
templateClass = "org.gradle.kotlin.dsl.KotlinBuildScript",
|
||||||
dependencySelector = kotlinDslDependencySelector,
|
dependencySelector = kotlinDslDependencySelector,
|
||||||
additionalResolverClasspath = kotlinDslAdditionalResolverCp
|
additionalResolverClasspath = kotlinDslAdditionalResolverCp
|
||||||
)
|
).let { kotlinDslTemplates.addAll(it) }
|
||||||
|
|
||||||
|
|
||||||
if (kotlinDslTemplates.isNotEmpty()) {
|
if (kotlinDslTemplates.isNotEmpty()) {
|
||||||
return kotlinDslTemplates
|
return kotlinDslTemplates.toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
val default = tryToLoadOldBuildScriptDefinition()
|
val default = tryToLoadOldBuildScriptDefinition()
|
||||||
@@ -244,6 +253,10 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD
|
|||||||
fileName.endsWith(KOTLIN_DSL_SCRIPT_EXTENSION)
|
fileName.endsWith(KOTLIN_DSL_SCRIPT_EXTENSION)
|
||||||
|
|
||||||
override fun toString(): String = "ErrorGradleScriptDefinition"
|
override fun toString(): String = "ErrorGradleScriptDefinition"
|
||||||
|
|
||||||
|
override fun equals(other: Any?): Boolean = other is ErrorGradleScriptDefinition
|
||||||
|
|
||||||
|
override fun hashCode(): Int = name.hashCode()
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ErrorScriptDependenciesResolver(private val message: String? = null) : DependenciesResolver {
|
private class ErrorScriptDependenciesResolver(private val message: String? = null) : DependenciesResolver {
|
||||||
|
|||||||
Reference in New Issue
Block a user