天天看點

說說開發 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 中,先應用插件,然後進行屬性設定。

下面給出文法配置示例: