Android 最佳實(shí)踐のGralde插件開(kāi)發(fā)

前言

最近忙于開(kāi)發(fā)代碼檢測(cè)工具,保證公司項(xiàng)目代碼規(guī)范,所以研究起了代碼檢測(cè)插件,包括了CheckStyle、FindBugs等第三方代碼檢測(cè)插件,并在它們基礎(chǔ)上,完成自己代碼檢測(cè)工具;

因此學(xué)習(xí)關(guān)于Gradle插件開(kāi)發(fā)的相關(guān)知識(shí),在此做個(gè)總結(jié)!!!

開(kāi)發(fā)Gradle插件

  • Android Studio 新建module


    新建module.png
  • 隨意起個(gè)module名稱(chēng),如testplugin


    testplugin.png
  • 刪除選中的文件夾及文件目錄

刪除選中的文件夾及文件目錄.png
  • 刪除gradle文件的內(nèi)容
4.png
  • 填寫(xiě)gradle文件內(nèi)容,如下
apply plugin: 'groovy'
apply plugin: 'maven'

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

repositories {
    mavenCentral()
}

//group:填寫(xiě)包名
group = 'com.kingpeng.testplugin'
//version:插件版本號(hào)
version = '1.0.0'

uploadArchives {
    repositories {
        mavenDeployer {
            //提交到遠(yuǎn)程服務(wù)器:
            // repository(url: "http://www.xxx.com/repos") {
            //    authentication(userName: "admin", password: "admin")
            // }
            //本地的Maven地址設(shè)置為D:/repos
            repository(url: uri('D:/repos'))
        }
    }
}
  • 新建PluginImp.groovy文件,如下圖
PluginImp.groovy.png
  • 填寫(xiě)相關(guān)測(cè)試內(nèi)容
import org.gradle.api.Plugin
import org.gradle.api.Project

/**
 * @author kingpengLin
 * @since 2017/9/26.
 */

public class PluginImp implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        // 此處填寫(xiě)相關(guān)gradle腳本,一般為groovy語(yǔ)法
        System.out.print("hehehe------");
        System.out.print("Test Plugin");
        System.out.print("hahaha-------");
    }
}
  • 新建testplugin.properties文件,目錄如上圖,必須一致的目錄,否則無(wú)法找到插件,
    填寫(xiě)內(nèi)容如下,填寫(xiě)對(duì)應(yīng)插件入口文件全路徑
implementation-class=com.kingpeng.testplugin.PluginImp

到此已完成插件開(kāi)發(fā)的環(huán)境,接下來(lái)生成插件及使用插件的演示

上傳插件到本地

  • 進(jìn)入gradle文件,可以看到我們?cè)O(shè)置上傳插件到本地倉(cāng)庫(kù),即D:/repos目錄
生成插件到本地.png
  • 點(diǎn)擊gradle上傳命令
上傳插件.png
  • 上傳到本地倉(cāng)庫(kù)成功
上傳到本地倉(cāng)庫(kù)成功.png

項(xiàng)目中配置使用插件

  • 在項(xiàng)目的gradle中添加插件使用
/**************** 插件配置 - 開(kāi)始 ****************/
//下的properties文件名稱(chēng)
apply plugin: 'testplugin'

buildscript {
    repositories {
        jcenter()
        maven {
            url uri('D:/repos')
        }
    }
    dependencies {
        //格式為-->group:module:version
        classpath 'com.kingpeng.testplugin:testplugin:1.0.0'
    }
}
/**************** 插件配置 - 結(jié)束 ****************/

到此,已接入插件,直接gradle編譯,就能看到輸出如下內(nèi)容,說(shuō)明插件已經(jīng)起作用

hehehe------
Test Plugin
hahaha-------
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容