Gradle插件编写(二)

一、前言

Android中使用自定义Gradle插件能为我们实现一些特定的功能,这里不再进行特定的描述。本文记录下简单的自定义Gradle插件,采用Groovy语言编写。Gradle插件编写(四)会给出gradlekotlinjava编写的例子。

二、在build.gradle中定义插件

定义插件最简单的方式莫过于直接在build.gradle中定义。如下:

apply plugin: GreetingPlugin

buildscript {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4'
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

class GreetingPlugin implements Plugin<Project> {
    void apply(Project project) {

        project.task('hello') {
            doLast {
                println 'Hello from the GreetingPlugin'
            }
        }
    }
}

三、buildSrc代码演示

直接在build.gradle中定义虽然比较好,但是随着逻辑扩大,然后逻辑可读性会变差,因此需要将其单独放在一个位置,这里采用buildSrc的方式进行定义
这里采用buildSrc的方式创建插件。首先在项目根目录创建一个buildSrc的文件夹。该文件夹名字不可更改。

首先创建以下目录结构

在这里插入图片描述

其中plugin文件夹下面的groovy文件名字可以起任意一个名字。plugin.properties的文件名字可以其任何一个名字。

build.gradle

apply plugin: 'groovy'

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

编写完后build重新构建下程序。该文件夹不需要在setting.gradle文件夹中引用,因为gradle是多项目构建,会自动检索所有包下面的build.gradle文件。重新构建的化可以使接下来编写插件使用代码联想功能。下面完善其它代码

plugin.properties

implementation-class=plugin.ThreePlugin

ThreePlugin.groovy

package plugin

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

class ThreePlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {
        println "打印的第一种方式"
        println '打印的第二种方式'
        println("打印的第三种方式")
        System.out.println("打印的第四种方式")
    }
}

在其它位置引用插件,例如build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

//使用plugin.properties中文件名的前缀plugin
//apply plugin: 'plugin'
//或者implementation-class=plugin.ThreePlugin中的plugin.ThreePlugin
apply plugin: plugin.ThreePlugin

buildscript {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4'
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

然后重新构建程序,会打印出以下日志

> Configure project :
打印的第一种方式
打印的第二种方式
打印的第三种方式
打印的第四种方式

> Task :app:preBuild UP-TO-DATE

四、参考链接

  1. Android官方提供的自定义Gradle插件示例:

https://github.com/android/gradle-recipes

  1. 自定义Android Gradle插件

https://blog.csdn.net/binbinqq86/article/details/81033746

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gradle 是一种现代化的构建工具,它具有强大的配置能力和灵活性。下面是一份关于 gradle 配置编写的手册: 一、项目结构 1. 在项目根目录下创建 build.gradle 文件,用于设置整个项目的全局配置。 2. 在每个子模块的目录下,可以创建单独的 build.gradle 文件,用于设置该模块的独立配置。 、基础配置 1. 定义项目基本信息:可以使用 project 关键词来定义项目名称、版本号等信息。 2. 配置项目的依赖:使用 dependencies 关键词来添加项目的依赖项。 三、构建脚本语法 1. 定义变量:使用 def 关键词定义变量,并且可以在后续的配置中使用。 2. 执行命令:使用 exec 关键词可以执行一些命令行操作。 3. 条件判断:使用 if-else 语句来进行条件判断和控制流程。 4. 循环操作:使用 for 循环关键词来进行循环操作。 四、任务配置 1. 定义任务:使用 task 关键词定义任务,可以自定义任务的名称和行为。 2. 任务依赖:使用 dependsOn 关键词为任务设置依赖关系。 3. 任务执行顺序:使用 finalizedBy 关键词为任务定义最终执行的操作。 五、插件配置 1. 引入插件:使用 apply plugin 关键词来引入需要使用的插件。 2. 配置插件:使用插件提供的配置项来进行具体的插件设置。 六、构建过程配置 1. 构建生命周期:使用 beforeCompile、afterCompile 等关键词来设置在构建过程中的执行时机。 2. 构建操作:使用 doFirst、doLast 关键词来设置在构建过程中进行的具体操作。 七、常用命令 1. gradle build:编译构建项目。 2. gradle clean:清除构建过程中的临时文件。 3. gradle test:运行项目的测试用例。 4. gradle run:运行应用程序。 以上是关于 gradle 配置编写的基本手册,希望对您有所帮助。如果需要了解更多细节,请参考官方文档或其他详细的教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值