您现在的位置是:首页 > 文章详情

Gradle 自定义插件

日期:2018-07-10点击:562

Gradle 自定义插件

官方原文

gradle学习官方翻译网站

1.新建项目

配置build.gradle

//使用官方的 `groovy` 插件 apply plugin: 'groovy' //添加api依赖 dependencies {dependencyHandler -> dependencyHandler .compile gradleApi() dependencyHandler. compile localGroovy() } //添加当前使用的gradle版本为2.1.3 dependencies { DependencyHandler dependencyHandler -> dependencyHandler.compile 'com.android.tools.build:gradle:2.1.3' //dependencyHandler.compile fileTree() } 

创建资源

注意,红框内的两者名保持一致!


img_d9dfd451d5e4712e80a6bd9c8d9a60c1.png
image.png

2.新建pluginLaunch类

 class MyPluginLaunch implements Plugin<Project> { /** * 因为是遍历 List 顺序添加的,所以可以在 Plugin 中通过先后顺序一一添加 registerTransform 方法第二个参数是 dependsOn, 可以手动设置依赖关系 * @param project */ @Override public void apply(Project project) { ZDMLogger.i('Project enable MyPluginLaunch plugin') project.extensions.create("ccjReleaseInfo",ReleaseInfoExtension) //创建扩展属性 project.tasks.create("ccjReleaseTask",ReleaseInfoTask) //创建自定义任务 } } 

3.新建自定义属性类Extension

该属性可以在gradle中直接使用类似于android{}

class ReleaseInfoExtension extends Extension { String versionName String versionCode String versionInfo String fileName @Override public String toString() { return "ReleaseInfoExtension{" + "versionName='" + versionName + '\'' + ", versionCode='" + versionCode + '\'' + ", versionInfo='" + versionInfo + '\'' + ", fileName='" + fileName + '\'' + '}' } } 

4.新建自定义Task

用来处理自定义属性ReleaseInfoExtension中的变量

 class ReleaseInfoTask extends DefaultTask{ ReleaseInfoTask() { group='zdmrouter' description='the realeaseInfo Task of zdm router' mustRunAfter() } /** * 在doFitst 和doLast中间执行 */ @TaskAction void doAction (){ updateInfo() } private void updateInfo(){ String versionCodeMsg=project.extensions.getByName("ccjReleaseInfo").versionCode //其中ccjReleaseInfo为在launcher中定义的变量 ZDMLogger.i( "ReleaseInfoTask.updateInfo.versionCodeMsg>>>>"+versionCodeMsg) } } 

5.将plugin 发布到jcenter 或者自己搭建的服务器仓库地址.然后进行依赖

//在root项目中的dependencies中 classpath 'com.smzdm:zdm_router_register:1.1.0' 
//然后,在使用的地方,;类似于依赖Android插件一样.依赖自己的插件 apply plugin: 'com.smzdm.android.router.register' 

6.依赖完成后,可以在apply自定义插件的gradle中进行

配置自定义属性

ccjReleaseInfo { versionName = "1.0" versionCode = 1 versionInfo = "versionInfo>>ccjReleaseInfo" } 

运行自定义Task

gradle ccjReleaseTask

或者在gradle面板中直接调用

img_19fa8aed9a6ce17e51f7bcd280573858.png
image.png
原文链接:https://yq.aliyun.com/articles/658827
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章