美文网首页
Gradle自定义插件基础

Gradle自定义插件基础

作者: 陆元伟 | 来源:发表于2019-11-26 15:49 被阅读0次

1 首先建立一个android library工程

2 然后修改build文件,修改如下,

apply plugin:'groovy'
apply plugin :'maven'


dependencies {
    implementation gradleApi()
    implementation localGroovy()

}
uploadArchives{


    repositories {
        mavenDeployer{
            //当前插件打包的路径
            repository(url:"file:///User/lu/lib/")
        }
    }
}
// 外部引用的时候对应的 classpath 'com.lu.glugin:mylibrary:1.0.0'
group = 'com.lu.glugin'
version = '1.0.0'

3 编码

在main目录下,创建一个groovy目录,然后在该目录下创建task,我们知道gradle都基于task的。创建一个类DemoTask继承DefaultTask后,并且更改后缀名为groovy,内部属性group表示在哪个任务组下面,如果没有设置,则在other下。

 class DemoTask extends DefaultTask {
    // 任务名
    static final String NAME = "demoTask"
     DemoTask(){
      group = "demo"
    }

    @TaskAction
    def start(){

      println 'task is run...............'
    }

}

DemoPlugin继承Plugin,gradle会调用apply方法

class DemoPlugin implements Plugin<Project> {

    @Override
     void apply(Project project) {
        println "DemoPlugin apply"
       project.tasks.create(DemoTask.NAME,DemoTask)
    }
}

4 创建META-INF

在main文件目录下创建resources目录,然后创建META-INF目录,在目录下创建gradle-plugins目录,在目录下创建com.mylibrary.properties文

文件里面添加如下属性,表示gradle要调用我哪个类

implementation-class=com.lu.gradle.DemoPlugin

目录结构如图

1.png

5 打包 。所有准备好了后,开始打包。打包也很简单

点击gradle里面的uploadArchives

2.png

看到如图编译成功。则表示打包成功

3.png

在对应的目录,就可以看到打包的结果

4.png

6引用

在工程build文件里面添加,因为我们没有上传到jcenter,在本地,所以引用也引用本地的。如果上传到jcenter审核通过了则就不需要本地引用

buildscript {
    repositories {
        google()
        jcenter()
        maven{
            url uri('c:/User/lu/lib/')
        }
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'
        classpath 'com.lu.glugin:mylibrary:1.0.0'
      
    }
}

在app的build文件里面添加依赖

//后面就是前面那个com.mylibrary.properties的文件名
apply plugin:'com.mylibrary'

7 在gradle窗口就可以看到我们插件里面的task了

5.png

8 执行,点击task就可以执行我们的代码

6.png

相关文章

  • Android Gradle入门到精通(二)

    1.背景 上节学完了Gradle的基础知识,这节学习下Gradle的自定义插件。自定义插件主要分为三种方式: 新建...

  • Replugin源码解析之replugin-plugin-gra

    概述 该部分基础知识在Gradle学习-----Gradle自定义插件及Replugin源码解析之replugin...

  • Gradle自定义插件

    Gradle自定义插件 在Gradle中创建自定义插件,Gradle提供了三种方式: 在build.gradle脚...

  • 自定义Gradle插件

    个人博客http://www.milovetingting.cn 自定义Gradle插件 自定义Gradle插件可...

  • 启用Gradle远程调试

    在Gradle学习10——自定义Gradle插件 这篇文章中介绍了编写插件的几种方式。编写gradle对象插件的实...

  • gradle插件调试

    在Gradle学习10——自定义Gradle插件 这篇文章中介绍了编写插件的几种方式。编写gradle对象插件的实...

  • Android Gradle 插件(二)

    Android Gradle 插件(一)Android Plugin DSL Reference 自定义插件 新建...

  • Gradle 插件

    比如一个自动输出Lint报告的Gradle插件1.自定义Gradle插件的方式Gradle是采用Groovy语言,...

  • Gradle自定义插件和发布

    Gradle自定义插件和发布 这篇文章讲解的是如何自定义gradle插件,并以本地依赖和远程依赖的方式来集成。 本...

  • Java Android技术学习以及面试

    点我跳转github查看 目录 Android基础进阶Gradle相关自定义View插件化相关热修复相关编译器相关...

网友评论

      本文标题:Gradle自定义插件基础

      本文链接:https://www.haomeiwen.com/subject/uitywctx.html