初识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'
复制代码

运行后打印出日志

相关文章
相关标签/搜索