Android Studio自定義Plugin


DEMO地址:

https://github.com/woniupanpa/PluginDemo

 

1:新建一個Library:插件必須是Library,而不能是Application

 

 

2:刪除以下文件,只保留main和build.gradle

 

 

 

 

 

 

3:Library build.gradle設置成如下:

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

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compile gradleApi()
    compile localGroovy()
}

//設置maven deployer
uploadArchives {
    repositories {
        mavenDeployer {
            //設置插件的GAV參數
            pom.groupId = 'com.yjm.plugin'
            pom.artifactId = 'test'
            pom.version = '1.0.0'
            //文件發布到下面目錄
            repository(url: uri('../repo'))
        }
    }
}

uploadArchives表示的是打包插件到本地倉,sync gradle之后,Gradle列表會出現uploadArchives,后續點擊該按鈕就可以打包插件到本地倉。

 

 

4:添加plugin.groovy文件:

 

 

package com.yjm
import org.gradle.api.Plugin
import org.gradle.api.Project
class YjmPlugin implements Plugin<Project> {
    @Override
    void apply(Project project) {

        project.task("yjm"){
            System.out.println("======================")
            System.out.println("my name is yjm")
            System.out.println("======================")
        }
    }
}

 

 5:添加properties文件,resources在main目錄下,resource/META-INFO/gradle.plugins(注意是META-INFO/gradle.plugins而不是META-INFO.gradle.plugins)下面生成com.yjm.plugin.properties文件,改名字可以任意命名,

后續應用引用插件的名字就是用該名字:app plugin: 'com.yjm.plugin',注意properties是后綴,引用的時候不能加上properties

 

 

 

 com.yjm.plugin.properties:

implementation-class=com.yjm.YjmPlugin

 com.yjm.YjmPlugin表示的是plugin所在的位置。

 

6:上傳插件到本地,點擊uploadArchives

 

執行成功之后,會在根目錄出現repo目錄:說明上傳到本地倉成功。

 該目錄的路徑,是前面build.gradle決定的:groupId: artifactId:version

//設置maven deployer
uploadArchives {
    repositories {
        mavenDeployer {
            //設置插件的GAV參數
            pom.groupId = 'com.yjm.plugin'
            pom.artifactId = 'test'
            pom.version = '1.0.0'
            //文件發布到下面目錄
            repository(url: uri('../repo'))
        }
    }
}

 

 

 7:主應用配置該插件:

app build.gradle添加如下配置:sync gradle

 

 

 classpath路徑就是前面uploadArchives 所定義的:groupId: artifactId:version

 

buildscript{
    repositories{
        jcenter()
        maven{
            url uri('../repo')
        }
    }
    dependencies{
        classpath 'com.yjm.plugin:test:1.0.0'
    }
}
apply plugin: 'com.yjm.plugin'

 

 

8:點擊PluginDemo 的task里面的yjm任務(該任務定義在插件project里面),成功打印出插件task的內容,說明引用該插件成功。

 

 

9:添加task如何更新:

 

 添加一個task2 的任務,點擊upload里面的uploadArchives,更新插件到本地倉

 

 

 然后同步項目的gradle:

 

同步成功之后,發現這里多了一個taks yjm2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM