👩💻 Join our community of thousands of amazing developers!
周末在家正刷着 GitHub 呢,微信收到一条消息:“森哥,像 ksp , allopen 这些 Kotlin 的编译器插件,它们是怎么 run 起来的,看了半天一头雾水”,我心想,不应该呀,十有八九是通过 SPI 来实现插件的加载的“,于是,我赶紧瞅了一眼 JetBrains/Kotlin 的代码,找到了 KotlinGradleSubplugin.kt,于是,假装很懂的样子,发了一个 KotlinGradleSubplugin.kt 的代码截图给他。 “这个我看过了,我想知道 all-open 这个插件究竟是在什么时候修改类的修饰符的” 呃。。。,看来,是编不下去了,只好 clone 了 JetBrains/Kotlin 的代码下来开始仔细研究。 PluginCliParser 经过一番连蒙带猜,在 PluginCliParsers.kt 中发现了这段代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 object PluginCliParser { fun loadPlu...