自定义Gradle插件

自定义Gradle插件的方式

Gradle是采用Groovy语言,编写Gradle插件主要有三种方法

  • build.gradle脚本中直接使用。这种方式就是直接在Android Studioapp moudle的build.gradle 中进行插件的编写,优点就是不用再上传插件到maven或者其它地方,项目就可以直接使用;缺点也是很明显,就是只能在自己的项目中使用,不能复用,这个不是我们今天要说的。

  • buildSrc中使用。这种方式需要在项目中新建一个model命名为buildSrc,这个目录就用来存放自定义插件。然后在src/main中建立两个目录,一个就是存放代码的groovy目录,一个是存放自定义插件名称的resources目录。这种定义方式也是只能在我们项目中进行使用,不好复用。我们今天要分享的是最灵活的方式,也就是第三点。

  • 独立Module中使用。这种方式就是完全独立开发一个Module,可以随便用。

独立Module方式

步骤:

1、新建module
在这里插入图片描述
在这里插入图片描述
module名字别乱取,这个是后面用作artifactId,artifactId是什么,熟悉maven的应该都知道吧,这是maven引用的标准格式:
在这里插入图片描述

2、删除src目录下除了main的所有文件,删除main下所有文件及文件夹。最终保留的是src/main的空文件夹

在这里插入图片描述

3、修改build.gradle文件
删除全部内容,修改为:

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

dependencies {
    //gradle sdk
    implementation gradleApi()
    //groovy sdk
    implementation localGroovy()
}

repositories {
    mavenCentral()
}

4、在main路径下新建名为 groovy 的包,再新建自定义包名,如:com.demo.custom,在此路径下新建 .groovy 文件,如:CustomPlugin.groovy
在这里插入图片描述

package com.demo.custom

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

public class CustomPlugin implements Plugin<Project> {

    void apply(Project project) {
        System.out.println("========================");
        System.out.println("hello gradle plugin!");
        System.out.println("========================");
    }
}

5、在main路径下新建 reources/META-INF/gradle-plugins目录。并在此目录下新建一个 .properties文件。命名可自定义,但这个命名将作为后期引用插件地方的名称。例如命名为:com.demo.custom.properties。在app的build.gradle中使用为:apply plugin: ‘com.demo.custom’。

在这里插入图片描述

6、我们知道引用插件还需要 classpath 。即插件需要打包到maven仓库。所以需要在此module的build.gradle中新增:

//group和version在后面使用自定义插件的时候会用到
group='com.demo.custom'
version='1.0.0'

uploadArchives {
    repositories {
        mavenDeployer {
            //提交到远程服务器:
            // repository(url: "http://www.xxx.com/repos") {
            //    authentication(userName: "admin", password: "admin")
            // }
            //本地的Maven地址设置为 ../repos
            repository(url: uri('../repos'))
        }
    }
}

7、同步一下,点击右上角的Gradle,找到task中的upload选项,并且双击uploadArchives:

在这里插入图片描述

在刚才配置的项目根目录下就会自动生成 repos 文件夹:

在这里插入图片描述
8、使用:
在这里插入图片描述
在这里插入图片描述

buildSrc方式

前面我们讲了如何自定义gradle插件并且打包出去,可能步骤比较多。有时候,你可能并不需要打包出去,只是在这一个项目中使用而已,那么你无需打包这个过程。

只是针对当前项目开发的Gradle插件相对较简单。步骤之前所提到的很类似,只是有几点需要注意:

  • 新建的Module名称必须为BuildSrc
  • 无需resources目录
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值