Kapt: Clear URL cache after changing annotation processor JAR

This commit is contained in:
Yan Zhulanow
2017-11-30 01:03:41 +09:00
parent 84a766de24
commit ef6be206d0
13 changed files with 188 additions and 0 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.kapt3
import com.intellij.ide.ClassUtilCore
import com.intellij.openapi.project.Project
import com.sun.tools.javac.tree.JCTree
import org.jetbrains.kotlin.analyzer.AnalysisResult
@@ -83,10 +84,13 @@ class ClasspathBasedKapt3Extension(
return super.analysisCompleted(project, module, bindingTrace, files)
} finally {
annotationProcessingClassLoader?.close()
ClassUtilCore.clearJarURLCache()
}
}
override fun loadProcessors(): List<Processor> {
ClassUtilCore.clearJarURLCache()
val classpath = annotationProcessingClasspath + compileClasspath
val classLoader = URLClassLoader(classpath.map { it.toURI().toURL() }.toTypedArray())
this.annotationProcessingClassLoader = classLoader