前言
最近忙于開(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-------