天天看点

说说开发 ByteX 里的插件的第一步

byteX 里的插件可以单独运行,也可以注册到公用平台上被调用,那么具体是使用了什么样的 gradle 语法将自己注册到共用平台上的呢?

笔者会简单说几个像笔者一样的新人不知道的点,再详细一些的内容(比如抠具体的源码方法)就不赘述啦。这些知识点也是开发基于 byteX 的插件的基本知识。

(以 <code>ReferCheckPlugin</code> 为例进行分析)

答 :

这是因为插件项目使用一个叫做 <code>PluginConfigProcessor</code> 的注解处理器,这个处理器会将 <code>@PluginConfig</code> 注解里的值,写入到对应项目的 <code>META-INF/gradle-plugins/%s.properties</code> 里, 其中 <code>%s</code> 是注解 <code>@PluginConfig</code> 的值。

所以相当于这个文件没有手写,是使用注解处理器生成的。

答:

插件属性如何进行声明?

答: 每一个插件都是继承于 <code>CommonPlugin&lt;E extends BaseExtension, X extends BaseContext&gt;</code>

的。其中第一个泛型参数 <code>E extends BaseExtension</code> 就是该 plugin 的参数类型。其中需要声明各个属性的 getter 和 setter 方法。

下面给出声明示例:

在使用插件的项目中,如何设置插件的属性?

答 : 在使用插件的项目里,在其模块的 build.gradle 中,先应用插件,然后进行属性设置。

下面给出语法配置示例: