Gradle之如何创建Gradle插件工程及调试

您所在的位置:网站首页 编写gradle插件 Gradle之如何创建Gradle插件工程及调试

Gradle之如何创建Gradle插件工程及调试

2023-10-05 07:59| 来源: 网络整理| 查看: 265

1 Groovy基础 1.1 Android Studio中如何运行groovy程序? 1.1.1 Groovy console

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

1.1.4 学习链接

Android Studio 中如何运行 groovy 程序

2 如何创建Gradle插件工程 2.1 新建Android项目

(1)Android Studio中新建一个Android项目

(2)新建Gradle插件Module:Android Module

(3) 删除不要的文件:将Module里面的内容删除,只保留build.gradle文件、.gitignore和src/main目录

2.2 在module目录下进行以下操作,配置目录

(1)新建src/main/groovy目录,用于编写代码,与Android项目类似,只是java变成了groovy;

(2)新建src/main/resoureces/META-INF/gradle-plugins目录,用于存放插件入库和名字配置;

(3)在build.gradle中添加以下内容:

apply plugin: 'groovy' apply plugin: 'maven' dependencies { // gradle sdk implementation gradleApi() // groovy sdk implementation localGroovy() // 添加依赖,于Android一样 implementation "com.android.tools.build:gradle:3.4.0" implementation "com.android.tools.build:transform-api:1.5.0" implementation "javassist:javassist:3.12.1.GA" implementation "commons-io:commons-io:2.5" } repositories { mavenCentral() } // 以上都为固定写法 // 打包到本地或者远程Maven库 uploadArchives { repositories { mavenDeployer { pom.groupId = 'com.read.plugin' // groupId pom.artifactId = 'statsdk' // artifactId pom.version = '1.0.0' // 版本号 / /提交到远程服务器: // repository(url: "http://www.xxx.com/repos") { // authentication(userName: "admin", password: "admin") // } // 本地的Maven地址设置为 repository(url: uri('../repo')) } } }

(4)在src/main/groovy目录下右键【New->Package】创建包名:com.read.plugin

(5)在com.read.plugin包下创建插件入口文件

package com.read.plugin import org.gradle.api.Plugin import org.gradle.api.Project class MyPlugin implements Plugin { // 当插件apply时调用 void apply(Project project) { System.out.println("自定义插件!") } }

(6)在src/main/resoureces/META-INF/gradle-plugins目录下创建com.read.plugin.properties文件,添加以下内容:

implementation-class=com.read.plugin.MyPlugin

(7)rebuild一下,开发环境就配置好了,可以看到Android Studio已经识别出目录了 在这里插入图片描述

2.5 插件发布

(1)前面在build.gradle中配置了上传maven的信息,直接双击upload下的uploadArchives就会执行打包上传啦

// mac ./gradlew uploadArchives

在这里插入图片描述

(2)执行完成后,去我们的Maven本地仓库查看一下

在这里插入图片描述

2.6 接入插件

(1)在project级别的build.gradle文件中添加com.read.plugin:statsdk依赖

buildscript { repositories { google() jcenter() // 添加 plugin maven 库地址 // maven { // url 'http://172.0.0.1:8080/repository/public/' // } // 添加本地仓库路径 maven { url uri('repo') } } dependencies { // 添加 plugin 依赖 classpath 'com.read.plugin:statsdk:1.0.0' } }

(2)在app的build.gradle文件中添加应用插件

// 添加 plugin 插件 apply plugin: 'com.read.plugin' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) } 3 如何使用kotlin编写插件呢?

其实kotlin写起来也挺简便,有些同学groovy不熟,因此用kotlin也能编写插件,这个配置也简单:

3.1 将src/main/groovy目录改成src/main/kotlin,然后在kotlin目录下边写kotlin代码 3.2 修改插件module的build.gradle文件(对比前面的文件只是去掉了groovy,添加了kotlin的相关配置) ext { kotlin_version = '1.3.40' } // apply plugin: 'groovy' apply plugin: 'maven' apply plugin: "kotlin" sourceCompatibility = 1.8 dependencies { // gradle sdk implementation gradleApi() // groovy sdk // implementation localGroovy() // 添加依赖,于Android一样 implementation "com.android.tools.build:gradle:3.4.0" implementation "com.android.tools.build:transform-api:1.5.0" implementation "javassist:javassist:3.12.1.GA" implementation "commons-io:commons-io:2.5" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.40" } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" } repositories { mavenCentral() } // 以上都为固定写法 // 打包到本地或者远程Maven库 uploadArchives { repositories { mavenDeployer { pom.groupId = 'com.read.plugin' // groupId pom.artifactId = 'statsdk' // artifactId pom.version = '1.0.0' // 版本号 / /提交到远程服务器: // repository(url: "http://www.xxx.com/repos") { // authentication(userName: "admin", password: "admin") // } // 本地的Maven地址设置为 repository(url: uri('../repo')) } } } 4 如何调试插件(同理调试 APT) 4.1 在 接入工程 中打开 APT 调试模式 方法1

切换到 Android 目录下,编译全局的 gradle.properties 文件,临时增加以下代码:

org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Dorg.gradle.debug=true

APT Android代码怎么调试

方法2(推荐)

(1)在命令行中执行APP的编译命令:

// windows gradlew assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true // mac ./gradlew assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true // 或 ./gradlew :VideoCut:assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true

(2)后面两个参数是必须的,表示等待gradle调试。这个时候会卡在这:

在这里插入图片描述

4.2 在 插件工程 中配置 remote 调试类型,然后点击 debug 按钮

(1)创建新的运行配置

在这里插入图片描述 (2)创建remote类型的配置,本地调试默认配置即可直接点确定,如果远程调试请输入 Host:

在这里插入图片描述

(3)打断点:打断点和 Android 开发一样,点一下就行;

(3)执行编译,对 remote 点击调试按钮:点击 debug 按钮,如下图。 在这里插入图片描述 (4)然后,接入工程就会运行脚本,插件项目 就可以调试插件代码了。

4.3 其他参考

如何断点调试第三方 Gradle Plugin

5 发布插件命令 发布插件:./gradlew uploadArchives 6 学习链接

Android如何创建Gradle插件开发工程及调试

在AndroidStudio中自定义Gradle插件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3