最近一直在深挖Android Gradle的學習,發現其實所謂的Android Gradle也不過就是一個gradle插件,因此若是能學好gradle的開發,咱們就能夠利用Gradle爲咱們作不少事,好比干預Android的打包,打出咱們想要地apk或者jar,再或者多渠道設置等等。java
若是想實現對Gradle的開發,確定須要一個開發Gradle的工程,這個咱們能夠直接使用Android Studio便可,對於Gradle工程的創建,網上主要有兩種方式android
直接在AndroidStudio中創建一個文件夾buildSrc,而後添加src文件夾和build.gradle
文件,以下圖所示: bash
build.gradle
中添加以下代碼:
apply plugin: 'groovy'
dependencies {
compile gradleApi()
compile localGroovy()
}
複製代碼
這樣咱們就能夠在groovy文件夾中添加對應代碼進行gradle開發了。app
第二種方式可使用新建一個Java Library的形式: maven
這裏注意是Java Library不是android的 Libraryide
咱們暫時起名glib
,工程以下圖所示: 學習
apply plugin: 'groovy'
dependencies {
compile gradleApi()
compile localGroovy()
}
複製代碼
而後刪除java文件夾,創建groovy文件夾,以及resources文件夾,以下圖所示: 測試
使用buildSrc能夠在該Project中的任何module中直接使用,若是使用新建的Java Library的形式,須要上傳Gradle插件到本地代碼庫,這個後面再說,因此下面的例子咱們先以buildSrc的方式進行介紹gradle
groovy新建一個TestPlugin.groovy文件(注意後綴必定要是groovy):ui
public class TestPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
println("aaaaaa")
}
}
複製代碼
gradle插件都須要在build.gradle中apply,如:apply plugin: 'com.android.application'
因此他須要有一個對外的名字,這就須要resources下的文件起做用了。 在resources文件夾下創建META-INF/gradle-plugins
:
properties
文件,這個文件的名字就是對外的名字,因此起的時候要慎重,咱們暫時叫
hhh.properties
,名字特殊一點容易看出來。 文件內容以下:
implementation-class=TestPlugin
複製代碼
而後咱們利用Android Studio自帶的app module作個測試:
上面提到了若是使用java Library,須要上傳到本地倉庫才能引用,如今就須要介紹一下如何進行操做 首先須要修改build.gradle文件:
apply plugin: 'groovy'
apply plugin: "maven"
dependencies {
compile gradleApi()
compile localGroovy()
}
uploadArchives{
repositories{
mavenDeployer{
repository(url:uri('../repo'))
pom.groupId = 'com.test.plugin' // 組名
pom.artifactId = 'test' // 插件名
pom.version = '2.0.0' // 版本號
}
}
}
複製代碼
而後執行這個uploadArchives Task 這是會發現,工程下多了一個文件夾:
app module若是須要使用,須要添加依賴:
apply plugin: 'com.android.application'
apply plugin: 'hhh'
buildscript{
repositories{
maven{
url uri('../repo')
}
}
dependencies{
classpath 'com.test.plugin:test:2.0.0'
}
}
// 引用插件
apply plugin: 'fff'
複製代碼
今天就暫時先寫到這裏,以後會陸陸續續增長一些關於gradle的相關知識
也歡迎關注個人公衆號,以後會推薦更多好用的組件庫。