[Gradle] Optimize configuration time

#KT-48884 Fixed
This commit is contained in:
Alexander Likhachev
2021-09-30 13:07:17 +03:00
committed by Space
parent 41e38d5a1a
commit 0eca8b9727
4 changed files with 6 additions and 10 deletions
@@ -163,12 +163,7 @@ internal abstract class KotlinSourceSetProcessor<T : AbstractKotlinCompile<*>>(
// that has a name composed as '<IDE module name>Classes`, where the IDE module name is the default source set name:
val expectedClassesTaskName = "${kotlinCompilation.defaultSourceSetName}Classes"
project.tasks.run {
var shouldCreateTask = false
try {
named(expectedClassesTaskName)
} catch (e: UnknownDomainObjectException) {
shouldCreateTask = true
}
val shouldCreateTask = expectedClassesTaskName !in names
if (shouldCreateTask) {
project.registerTask(expectedClassesTaskName, IDEClassesTask::class.java) {
it.dependsOn(getByName(kotlinCompilation.compileAllTaskName))
@@ -105,7 +105,7 @@ private fun syncKotlinAndAndroidResources(
val project = target.project
androidSourceSet.resources.srcDirs(*kotlinSourceSet.resources.srcDirs.toList().toTypedArray())
androidSourceSet.resources.srcDirs(kotlinSourceSet.resources.srcDirs)
if (androidSourceSet.resources.srcDirs.isNotEmpty()) {
androidSourceSet.resources.srcDir(defaultSourceFolder(project, kotlinSourceSet.name, "resources"))
kotlinSourceSet.resources.srcDirs(androidSourceSet.resources.srcDirs)
@@ -100,7 +100,7 @@ internal class DefaultKotlinSourceSetFactory(
attributes.attribute(Usage.USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_METADATA))
}
project.whenEvaluated {
project.afterEvaluate {
setJsCompilerIfNecessary(sourceSet, this@apply)
}
}
@@ -127,13 +127,14 @@ class KotlinBuildStatHandler {
}
}
}
val taskNames = project.tasks.names
sessionLogger.report(NumericalMetrics.NUMBER_OF_SUBPROJECTS, 1)
sessionLogger.report(BooleanMetrics.KOTLIN_KTS_USED, project.buildscript.sourceFile?.name?.endsWith(".kts") ?: false)
sessionLogger.report(NumericalMetrics.GRADLE_NUMBER_OF_TASKS, project.tasks.names.size.toLong())
sessionLogger.report(NumericalMetrics.GRADLE_NUMBER_OF_TASKS, taskNames.size.toLong())
sessionLogger.report(
NumericalMetrics.GRADLE_NUMBER_OF_UNCONFIGURED_TASKS,
project.tasks.names.count { name ->
taskNames.count { name ->
try {
project.tasks.named(name).javaClass.name.contains("TaskCreatingProvider")
} catch (_: Exception) {