[BT] Clear jar caches after project compilation
This commit is contained in:
committed by
Space Team
parent
3adb202eb6
commit
ad4f4cbd28
+17
-2
@@ -5,11 +5,15 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.buildtools.internal
|
package org.jetbrains.kotlin.buildtools.internal
|
||||||
|
|
||||||
|
import com.intellij.openapi.vfs.impl.ZipHandler
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import org.jetbrains.kotlin.build.DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS
|
import org.jetbrains.kotlin.build.DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS
|
||||||
import org.jetbrains.kotlin.build.report.DoNothingBuildReporter
|
import org.jetbrains.kotlin.build.report.DoNothingBuildReporter
|
||||||
import org.jetbrains.kotlin.build.report.metrics.DoNothingBuildMetricsReporter
|
import org.jetbrains.kotlin.build.report.metrics.DoNothingBuildMetricsReporter
|
||||||
import org.jetbrains.kotlin.buildtools.api.*
|
import org.jetbrains.kotlin.buildtools.api.*
|
||||||
import org.jetbrains.kotlin.buildtools.api.jvm.*
|
import org.jetbrains.kotlin.buildtools.api.jvm.ClassSnapshotGranularity
|
||||||
|
import org.jetbrains.kotlin.buildtools.api.jvm.ClasspathSnapshotBasedIncrementalCompilationApproachParameters
|
||||||
|
import org.jetbrains.kotlin.buildtools.api.jvm.JvmCompilationConfiguration
|
||||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.parseCommandLineArguments
|
import org.jetbrains.kotlin.cli.common.arguments.parseCommandLineArguments
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.validateArguments
|
import org.jetbrains.kotlin.cli.common.arguments.validateArguments
|
||||||
@@ -17,13 +21,14 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
|||||||
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
||||||
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
|
||||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
|
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
|
import org.jetbrains.kotlin.cli.jvm.modules.CoreJrtFileSystem
|
||||||
import org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunnerUtils
|
import org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunnerUtils
|
||||||
import org.jetbrains.kotlin.config.Services
|
import org.jetbrains.kotlin.config.Services
|
||||||
import org.jetbrains.kotlin.daemon.client.BasicCompilerServicesWithResultsFacadeServer
|
import org.jetbrains.kotlin.daemon.client.BasicCompilerServicesWithResultsFacadeServer
|
||||||
import org.jetbrains.kotlin.daemon.common.CompilerId
|
import org.jetbrains.kotlin.daemon.common.CompilerId
|
||||||
import org.jetbrains.kotlin.daemon.common.configureDaemonJVMOptions
|
import org.jetbrains.kotlin.daemon.common.configureDaemonJVMOptions
|
||||||
import org.jetbrains.kotlin.daemon.common.filterExtractProps
|
import org.jetbrains.kotlin.daemon.common.filterExtractProps
|
||||||
import org.jetbrains.kotlin.incremental.ClasspathChanges
|
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner
|
import org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner
|
||||||
import org.jetbrains.kotlin.incremental.classpathDiff.ClasspathEntrySnapshotter
|
import org.jetbrains.kotlin.incremental.classpathDiff.ClasspathEntrySnapshotter
|
||||||
import org.jetbrains.kotlin.incremental.extractKotlinSourcesFromFreeCompilerArguments
|
import org.jetbrains.kotlin.incremental.extractKotlinSourcesFromFreeCompilerArguments
|
||||||
@@ -85,10 +90,20 @@ internal object CompilationServiceImpl : CompilationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun finishProjectCompilation(projectId: ProjectId) {
|
override fun finishProjectCompilation(projectId: ProjectId) {
|
||||||
|
clearJarCaches()
|
||||||
val file = buildIdToSessionFlagFile.remove(projectId) ?: return
|
val file = buildIdToSessionFlagFile.remove(projectId) ?: return
|
||||||
file.delete()
|
file.delete()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun clearJarCaches() {
|
||||||
|
ZipHandler.clearFileAccessorCache()
|
||||||
|
KotlinCoreEnvironment.applicationEnvironment?.apply {
|
||||||
|
(jarFileSystem as? CoreJarFileSystem)?.clearHandlersCache()
|
||||||
|
(jrtFileSystem as? CoreJrtFileSystem)?.clearRoots()
|
||||||
|
idleCleanup()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun getCustomKotlinScriptFilenameExtensions(classpath: List<File>): Collection<String> {
|
override fun getCustomKotlinScriptFilenameExtensions(classpath: List<File>): Collection<String> {
|
||||||
val definitions = ScriptDefinitionsFromClasspathDiscoverySource(
|
val definitions = ScriptDefinitionsFromClasspathDiscoverySource(
|
||||||
classpath,
|
classpath,
|
||||||
|
|||||||
Reference in New Issue
Block a user