在日常的开发中会遇到项目比较大,会根据代码功能进行对代码拆分成多个Module。拆分后遇到Module相互调用的问题采取的办法一般如下:
写这个插件的思路主要是想到了java的SPI(Service Provider Interface),考虑如何让META-INF/services下的配置文件自动生成(AutoService)、单例的接口实现如何获取,到最后使用Transform提前注册避免在运行时通过META-INF/services构建影响性能。
插件的使用在github中有详细的介绍。不在此处多言。主要介绍一下使用插件的优点:
@ServiceProvider
和@ServiceImplementation
分别标记接口和需要被构建的实现@BuildService
标记单例方法欢迎使用和提问