美文网首页
如何使用Android Studio自定义Gradle插件

如何使用Android Studio自定义Gradle插件

作者: BlueSocks | 来源:发表于2023-02-02 15:02 被阅读0次

    Android Stuido 自定义 Gradle7.0 插件

    本文包括以下三个部分:

    1. 使用android stuido 定义一个自定义gradle 插件
    2. 发布插件到本地
    3. 使用插件

    如何使用Android stuido 创建一个插件

    1、新建Android 工程

    2、创建 Android Library

    这里我们创建了一个名为plugin的module

    image.png

    此时plugin module 好只是一个android library,要让它成为gradle 插件模块还需要做些改造。

    修改 build.gradle文件

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

    修改build文件后编译

    配置plugin的目录结构

    1. 删除不必要的文件和目录只保留build.gradle 和 src/main
    2. 在src/main 目录下新建 groovy 目录,插件代码保存在此处
    3. 在src/main 目录下新建 src/main/resources/META-INF/gradle-plugins 目录,插件声明在此处
    4. 创建插件代码,在groovy 目录下创建自定义包,在包中创建一个MyPlugin.java重命名文件为MyPlugin.groovy 简单输出一句话。
    package com.custom.plugin
    
    import org.gradle.api.Plugin
    import org.gradle.api.Project;
    
    class MyPlugin implements Plugin<Project> {
    
        @Override
        void apply(Project project) {
            println "hello, this is my custom plugin!"
        }
    }
    
    
    1. 声明插件 在刚刚创建的gradle-plugins文件目录下创建插件声明文件custom-gradle-plugin.properties 文件中需要描述插件的类路径。
    implementation-class=com.custom.plugin.MyPlugin
    
    

    注意这里的文件名将是你在引用此插件时的插件名称

    好了到这里插件就创建完成了, 我们来看下插件的目录结构。

    image.png

    接下来我们将学习如何发布插件和使用插件

    如何发布插件到本地

    配置gradle 文件

    需要配置发布信息,这里只发布到本地。如何发布到远端自行google,这里发布到了项目目录下repo目录中。

    plugins {
        id 'groovy'
        id 'maven-publish'
    }
    dependencies {
        //gradle sdk
        implementation gradleApi()
        //groovy sdk
        implementation localGroovy()
    }
    
    publishing {
        // 定义发布什么
        publications {
            plugin(MavenPublication) {
                groupId = "com.custom.plugin"
                artifactId = 'Myplugin'
                version = '1.0.0'
                from components.java
            }
        }
        repositories {
            maven {
                name = 'repo'
                url = "../repo"
            }
        }
    }
    
    
    image.png image.png

    插件就发布到本地仓库了,我们来看下项目结构

    image.png

    到这里插件就算发布完成了。接下来我们继续学习如何使用插件。

    如何使用插件

    引入本地仓库

    在项目的setting.gradle文件中添加本地仓库

    maven {
        allowInsecureProtocol(true)
        url uri('./repo')
    }
    
    

    最终如下

    pluginManagement {
        repositories {
            gradlePluginPortal()
            google()
            mavenCentral()
            //添加本地仓库
            maven {
                allowInsecureProtocol(true)
                url uri('./repo')
            }
        }
    }
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
            //添加本地仓库
            maven {
                allowInsecureProtocol(true)
                url uri('./repo')
            }
        }
    }
    rootProject.name = "GradleCustomPlugin"
    include ':app'
    include ':plugin'
    
    

    引用插件

    在项目的buid.gadle 文件中添加

    buildscript {
        dependencies {
            classpath('com.custom.plugin:Myplugin:1.0.0')
        }
    }
    
    

    最终如下

    
    buildscript {
        dependencies {
            classpath('com.custom.plugin:Myplugin:1.0.0')
        }
    }
    
    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    plugins {
        id 'com.android.application' version '7.3.0' apply false
        id 'com.android.library' version '7.3.0' apply false
    }
    
    

    在主模块下使用插件

    在app 模块下的build.gradle 文件中添加插件

    plugins {
        id 'com.android.application'
        // 添加插件
        id 'custom-gradle-plugin'
    }
    
    

    检查是否成功

    编译引用插件的模块。会看到我们在MyPlugin.groovy 中打印的提示 hello, this is my custom plugin!

    image.png

    最后

    在这里插入图片描述

    全套视频资料:

    一、面试合集

    在这里插入图片描述
    二、源码解析合集 在这里插入图片描述
    三、开源框架合集 在这里插入图片描述

    相关文章

      网友评论

          本文标题:如何使用Android Studio自定义Gradle插件

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