构建插件可分为项目插件和设置插件, 可 hook 项目构建过程
开发项目插件步骤如下:
-
在 build.gradle.kts 文件中添加 m8test sdk 依赖 , 为了减小插件apk大小, 如果是 M8Test Version Catalog 中存在的依赖库请使用 compileOnly 来依赖项目
-
编写一个类继承 AbstractProjectPlugin 并重写 getPlugins 方法
-
编写一个类实现 Plugin 接口
-
在 AndroidManifest.xml 中配置插件信息
-
com.m8test.plugin.type: 插件类型, 此处为 project
-
com.m8test.plugin.name: 插件名称, 可以为任意字符串
-
com.m8test.plugin.className: 实现了插件的全类名
-
使用时需要在 init.build 文件中引用, 需要用到 BuildScriptConfig.requirePlugin 方法, 插件名为 com.m8test.plugin.name 指定的值
-
build 文件中通过 PluginContainer.apply 方法应用插件, 这里需要的是插件id, 也就是 getPlugins 方法返回的插件中某个插件的id
开发设置插件步骤如下:
-
在 build.gradle.kts 文件中添加 m8test sdk 依赖 , 为了减小插件apk大小, 如果是 M8Test Version Catalog 中存在的依赖库请使用 compileOnly 来依赖项目
-
编写一个类继承 AbstractSettingsPlugin 并重写 getPlugins 方法
-
编写一个类实现 Plugin 接口
-
在 AndroidManifest.xml 中配置插件信息
-
com.m8test.plugin.type: 插件类型, 此处为 settings
-
com.m8test.plugin.name: 插件名称, 可以为任意字符串
-
com.m8test.plugin.className: 实现了插件的全类名
-
使用时需要在 init.settings 文件中引用, 需要用到 BuildScriptConfig.requirePlugin 方法, 插件名为 com.m8test.plugin.name 指定的值
-
settings 文件中通过 PluginContainer.apply 方法应用插件, 这里需要的是插件id, 也就是 getPlugins 方法返回的插件中某个插件的id