tschuchort
10/06/2019, 5:07 PMraulraja
10/06/2019, 7:46 PMtschuchort
10/06/2019, 7:56 PMraulraja
10/06/2019, 8:02 PMImran/Malic
10/06/2019, 8:07 PMraulraja
10/06/2019, 8:08 PMImran/Malic
10/06/2019, 8:13 PMtschuchort
10/06/2019, 8:17 PMKaptComponentRegistrar::registerProjectComponents
it does its thing and registers the AbortAnalysisHandlerExtension
which just says "yes we're finished, do nothing else", effectively preventing all the following extensions like code generation to be run. Then the compiler terminates and the Gradle plugin calls the compiler again, this time without the kapt plugin.
Now what I'd like to know is if the Gradle plugin also passes all other third-party plugins via the pluginClasspath in both invocations of the compiler. Because this could lead to some third-party plugins being executed twice. Or perhaps it makes no difference if they are executed twice if they only register extensions for the later extensions that don't get executed due to kapt's short-circuiting.raulraja
10/06/2019, 8:21 PMtschuchort
10/06/2019, 8:33 PMin whichever case it would always be invoked with the plugin directive and plugin classpathHow can the pluginClasspath be the same when the kapt plugin is only used in the first call? If it were used always, it would never compile anything because kapt always aborts the compilation before the codegen phase
K2JVMCompilerArguments
directly because I want to hide the compiler dependency. Although most command line arguments (like the pluginClasspath) are parameters of KotlinCompilation
that you can change. Though that doesn't help you with this problem because you as a user can't decide to which stage those command line arguments apply.K2JVMCompiler
in different stages.raulraja
10/06/2019, 10:08 PMRachel
10/07/2019, 9:42 AMannotationProcessors
is checked in stubsAndApt
tmp
directorytschuchort
10/07/2019, 8:18 PMRachel
10/07/2019, 9:33 PMtschuchort
10/07/2019, 10:25 PMRachel
10/08/2019, 6:51 AM