美文网首页
自定义gradle插件

自定义gradle插件

作者: 简简简简简 | 来源:发表于2018-12-19 16:36 被阅读0次

    前言

    在Android studio中,使用gradle进行编译、打包,在一些情况下,学会自定义gradle插件,会帮我们解决很多问题。gradle插件是由groovy语言开发的,所以在自定义插件时,需要用到groovy语法(类似Java语法),本文只作为demo使用,想进一步学习groovy,可在精通 Groovy学习。

    一、新建gradle插件发布至maven

    1. 新建Android项目

    2. 新建一个Android module项目,类型选择Android library

    3. 将新建的module中除build.gradle文件外的的其余文件全部删除,然后删除build.gradle的内容全部删除

    4. 在新建的module中新建文件夹目录src.main.groovy和src.main.resources。groovy文件夹被识别为groovy源码目录,在其目录下新建包名,类似java。resources文件夹被识别为资源文件夹,在其目录下新建META-INF.gradle-plugins文件夹。

    5. 在新建的module中的build.gradle中添加(发布至本地maven库)

        apply plugin: 'groovy'
        apply plugin: 'maven'
    
        dependencies {
         compile gradleApi() //gradle sdk
         compile localGroovy() //groovy sdk
        }
    
        repositories {
          mavenCentral()
        }
    
        group='com.jian.plugin'
        version='1.0.0'
    
        uploadArchives {
        repositories {
          mavenDeployer {
            //提交到远程服务器:
            // repository(url: "http://www.xxx.com/repos") {
            //    authentication(userName: "admin", password: "admin")
            // }
            repository(url: uri('../repo’))  //本地maven库地址
           }
          }
        }
    
    1. 在新建module,groovy包目录下,新建一个文件,命名为PluginImpl.groovy

       package com.jian.plugin
      
       import org.gradle.api.Plugin
       import org.gradle.api.Project
      
       public class PluginImpl implements Plugin<Project>{
      
           @Override
           void apply(Project project) {
               System.out.println "======================="
               System.out.println "Hello gradle plugin"
               System.out.println "======================="
           }
       }
      
    2. 在新建module,researches/META-INF/gradle-plugins目录下新建一个properties文件,命名为plugin.test.properties,在里面输入

       implementation-class=com.jian.plugin.PluginImpl
      
    3. 点击Androidstudio右侧的gradle工具,
      双击uploadArchives,打包上传至本地maven库地址(../repo),即生成如下文件
      repo下的文件目录由build.gradle中的group生成,1.0.0由version生成

    4. 使用,在app下build.gradle 中添加如下代码

       buildscript {
           repositories {
               maven {
            //本地Maven仓库地址
                   url uri('../repo')
               }
           }
           dependencies {
           //格式为-->group:module:version
               classpath 'com.jian.plugin:mylibrary:1.0.0'
           }
       }
       //plugin.test为resources/META-INF/gradle-plugins下的properties文件名称
       apply plugin: ‘plugin.test'
      

    clean project 然后make project,从messages窗口中看到如下打印信息

    好了,hello world版的自定义Androidstudio插件运行成功!

    二、新建本地gradle插件

    1. 新建Android项目

    2. 新建一个Android module项目,命名为buildsrc,类型选择Android library

    3. 将新建的module中除build.gradle文件外的的其余文件全部删除,然后删除build.gradle的内容全部删除

    4. 在新建的module中新建文件夹目录src.main.groovy

    5. 在新建的buildsrc中的build.gradle中添加

       apply plugin: 'groovy'
       
       dependencies {
           compile gradleApi()//gradle sdk
           compile localGroovy()//groovy sdk
       
           compile 'com.android.tools.build:gradle:3.0.1'
       
           compile 'org.ow2.asm:asm:5.1'
           compile 'org.ow2.asm:asm-commons:5.1'
       }
       
       repositories {
           jcenter()
           google()
       }
      
    6. 在新建module,groovy包目录下,新建一个文件,命名为TestPlugin.groovy

       package com.liujian
       
       import org.gradle.api.Plugin
       import org.gradle.api.Project
       
       public class TestPlugin implements Plugin<Project>{
       
           @Override
           void apply(Project project) {
               System.out.println("========================")
               System.out.println("这是第TestPlugin插件!")
           }
       }
      
    7. 使用,在app下build.gradle 中添加如下代码

       apply plugin: com.liujian.TestPlugin
      

    然后make project,从messages窗口中看到如下打印信息

    相关文章

      网友评论

          本文标题:自定义gradle插件

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