初識Gradle插件開發

1、Groovy初識

groovy-lang.org/gdk.htmlhtml

一、特色:

  • Groovy是一門jvm語言
  • Java語言的特性Groovy都支持,咱們能夠混寫Java和Groovy

二、與Java對比

2.1 變量定義

Groovy中的變量能夠經過兩種方式定義:使用數據類型的本地語法,或者使用def關鍵字java

2.2 集合遍歷
def list = [1,2,3,4]
list.each{
  println it
}
複製代碼
2.3 文件讀寫
File file = new File("E:/Example.txt") 
println file.text 
複製代碼

Groovy開發更爲簡潔,也可以使用java語法進行插件開發bash

2、Gradle插件開發流程

一、新建插件工程

1.1 調整代碼結構

新建一個Java Library的module,刪除java目錄,建立groovy和resources、META-INF、gradle-plugins目錄 app

1.2 gradle-plugins中文件
  • 建立一個.properties文件,文件名稱至關於插件的別名,用於引用某個插件
  • 文件內容:implementation-class對應某個插件的完整名稱
implementation-class=com.test.plugin.TestPlugin
複製代碼
1.3 module下的build.gradle文件
apply plugin: 'groovy'
apply plugin: 'maven'
repositories {
  jcenter()
  google()
}

dependencies {
  //gradle sdk
  compile gradleApi()
  //groovy sdk
  compile localGroovy()
}
複製代碼
1.4 建立插件文件
class TestPlugin implements Plugin<Project> {

  @Override
  void apply(Project target) {
    println("----plugin running")
  }
}
複製代碼

實現Plugin,在apply方法中添加新的任務jvm

二、插件本地上傳

該module下的build.gradlesocket

//插件版本
version = "1.0.0"
//插件所屬group
group='com.test.plugin'
//插件名稱
archivesBaseName = 'test'

uploadArchives{ //當前項目能夠發佈到本地文件夾中
  repositories {
    mavenDeployer {
      repository(url: uri('/Users/hh/Desktop/repos')) //定義本地maven倉庫的地址
    }
  }
}
複製代碼

執行uploadArchives進行上傳 maven

三、插件遠程上傳

插件遠程上傳ide

3、Gradle插件斷點調試

一、插件工程添加遠程調試任務

點擊選擇Edit Configurations gradle

添加Remote,其餘配置使用默認值
在對應位置添加斷點

二、應用工程配置調試環境變量

在應用工程根目錄輸入下面的命令開啓gradle的遠程調試ui

export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
複製代碼

在應用工程根目錄輸入下面的命令啓動遠程調試器

./gradlew --no-daemon checkGradleDependencies  -Dorg.gradle.debug=true
複製代碼

三、插件工程添加調試器

點擊Debug按鈕,添加調試器

再次點擊Debug按鈕,在應用工程的命令行查看構建開始執行,當運行到插件工程斷點時,就會自動暫停

四、結束調試

在應用工程根目錄輸入下面命令關閉gradle遠程調試

export GRADLE_OPTS=""
複製代碼

4、Gradle插件應用

項目根目錄build.gradle,添加依賴庫路徑和依賴

buildscript {
    repositories {
        maven {
            url uri('/Users/hh/Desktop/repos')
        }
    }
    dependencies {
        classpath 'com.test.plugin:test:1.0.0'
    }
}
複製代碼

app module下的build.gradle,引用插件

apply plugin: 'com.test.plugin'
複製代碼

運行後打印出日誌

相關文章
相關標籤/搜索