前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >写一个Gradle插件

写一个Gradle插件

原创
作者头像
Clayman Twinkle
发布2019-04-01 12:53:33
6920
发布2019-04-01 12:53:33
举报
文章被收录于专栏:Android原创Android原创

一、gradle插件在Android中的应用

我们在Android Studio中创建的app项目中,build.gradle常有如下这行代码:

代码语言:txt
复制
apply plugin: 'com.android.application'

或是作为一个Android Library Module时,build.gradle会有如下这行代码:

代码语言:txt
复制
apply plugin: 'com.android.library'

这就是gradle插件应用的例子。

apply plugin: 'xxx'代表着在这个所在的gradle文件中应用了插件'xxx',那么在这个文件里,你就可以使用这个插件所提供的功能了。

如:

代码语言:txt
复制
apply plugin: 'com.android.application'
android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.chenqidian.myapplication"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

二、开发一个插件

gradle插件开发使用的语言是Groovy(一种跑在jvm上的编程语言)。

build.gradle文件中写入:

代码语言:txt
复制
class HelloWorldPlugin implements Plugin<Project> {

    @Override
    void apply(Project target) {
        println "Hello World"
    }
}

apply plugin: HelloWorldPlugin

Gradle Console中可以看到:

在Gradle Console中输入
在Gradle Console中输入

ok,这个就是我们实现的一个插件了。

三、发布插件

上面的话,插件类是写在了gradle文件中的,作为正式给别人使用的插件来讲的化,正确做法将代码作为一个独立的插件项目,然后打包成一个jar包来发布的。

1、创建独立插件项目

这里以Android Studio为例,创建一个Java Library目录。

Java Library Module
Java Library Module

修改build.gradle文件,让module支持使用groovy和提供打包上传能力。

代码语言:txt
复制
apply plugin: 'groovy'
apply plugin: 'maven'
uploadArchives{
    // 将本地目录作为maven仓库
    repositories{
        mavenDeployer {
            repository(url: uri('../repo'))
        }
    }
}
group = "com.andy"
version = "1.0"
dependencies {
    compile gradleApi()
}

2、编写插件代码

src/main/groovy/文件夹(没有文件夹需要新建)中新增HelloWorldPlugin.groovy文件

HelloWorldPlugin.groovy
HelloWorldPlugin.groovy

代码如下:

代码语言:txt
复制
package com.andy.testplugin

import org.gradle.api.Plugin
import org.gradle.api.Project

class HelloWorldPlugin implements Plugin<Project> {

    @Override
    void apply(Project target) {
        println "Hello World"
    }
}

3、编写properties文件

src/main/resources/META-INF/gradle-plugins文件夹(没有文件夹需要新建)中新增com.andy.testplugin.properties,输入内容,指明入口类:

代码语言:txt
复制
implementation-class=com.andy.testplugin.HelloWorldPlugin

4、执行打包上传插件jar包

可以直接在插件项目目录中执行gradle uploadArchives打包命令;

或者在Android Studio可视化gradle任务栏中执行,如下图所示:

gradle任务栏
gradle任务栏

打包执行成功后,可以在目录中看到这些文件,如下图:

请在这里填写图片描述
请在这里填写图片描述

5、使用插件

(1)导入maven本地仓库,依赖类路径

代码语言:txt
复制
buildscript{
    repositories {
        maven{
            url uri('/Users/chenqidian/AndroidStudioProjects/MyApplication/repo/')
        }
    }

    dependencies {
        classpath 'com.andy:HelloWorld:1.0' // 注意这里是 group : module名字 : 版本号,插件打包时配置好的
    }
}

(2)应用插件

代码语言:txt
复制
apply plugin: 'com.andy.testplugin' // 注意,这里的插件名是properties文件的文件名

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、gradle插件在Android中的应用
  • 二、开发一个插件
  • 三、发布插件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档