Gradle之如何创建Gradle插件工程及调试 |
您所在的位置:网站首页 › 编写gradle插件 › Gradle之如何创建Gradle插件工程及调试 |
1 Groovy基础
1.1 Android Studio中如何运行groovy程序?
1.1.1 Groovy console
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已经识别出目录了 (1)前面在build.gradle中配置了上传maven的信息,直接双击upload下的uploadArchives就会执行打包上传啦 // mac ./gradlew uploadArchives或 (2)执行完成后,去我们的Maven本地仓库查看一下 (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=trueAPT 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调试。这个时候会卡在这: (1)创建新的运行配置
(3)打断点:打断点和 Android 开发一样,点一下就行; (3)执行编译,对 remote 点击调试按钮:点击 debug 按钮,如下图。 如何断点调试第三方 Gradle Plugin 5 发布插件命令 发布插件:./gradlew uploadArchives 6 学习链接Android如何创建Gradle插件开发工程及调试 在AndroidStudio中自定义Gradle插件 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |