赞
踩
想写一个Gradle Transform Api,真的是怎么建一个Gradle插件,网上一水的水文,写的不明不白。代码都不全,还是得靠自己摸索。因此,在这里整理总结一下为大家提供出来。
基于com.android.tools.build:gradle:3.4.0
,下面分为几步,介绍如何配置Gradle插件开发工程。
按照以下几步即可。
这个不多说了,Android Studio中新建一个Android项目。
这个也不多说,新建一个Android Module。
打开module,除了build.gradle、.gitignore、*.iml都可以删掉
在module目录下进行以下操作:
apply plugin: 'groovy' apply plugin: 'maven' dependencies { //gradle sdk compile gradleApi() //groovy sdk compile localGroovy() //添加依赖,于Android一样 compile "com.android.tools.build:gradle:3.4.0" compile "com.android.tools.build:transform-api:1.5.0" compile "javassist:javassist:3.12.1.GA" compile "commons-io:commons-io:2.5" } repositories { mavenCentral() } //以上都为固定写法 //打包到本地或者远程Maven库 uploadArchives { repositories { mavenDeployer { pom.groupId = 'com.xxx.plugin.gradle' //groupId pom.artifactId = 'xxx' //artifactId pom.version = '1.0.2' //版本号 //提交到远程服务器: // repository(url: "http://www.xxx.com/repos") { // authentication(userName: "admin", password: "admin") // } //本地的Maven地址设置为 repository(url: uri('/Users/lhxia/Downloads')) } } }
package com.xxx.plugin
import org.gradle.api.Plugin
import org.gradle.api.Project
class MyPlugin implements Plugin<Project> {
void apply(Project project) {//当插件apply时调用
System.out.println("自定义插件!") //输出一句话
}
}
plugin_name.properties文件:
,添加以下内容:implementation-class=com.xxx.plugin.MyPlugin #配置前面的插件入口类
插件发布就简单了。前面在build.gradle中配置了上传maven的信息,直接执行upload即可。
当插件发布完成后就是接入了。与其他插件一样,按照以下步奏配置:
其实kotlin写起来也挺简便,有些同学groovy不熟,因此用kotlin也能编写插件,这个配置也简单:
src/main/groovy
目录改成src/main/kotlin
,然后在kotlin目录下边写kotlin代码。ext { kotlin_version = '1.3.40' } //apply plugin: 'groovy' apply plugin: 'maven' apply plugin: "kotlin" sourceCompatibility = 1.8 dependencies { //gradle sdk compile gradleApi() //groovy sdk // compile localGroovy() //添加依赖,于Android一样 compile "com.android.tools.build:gradle:3.4.0" compile "com.android.tools.build:transform-api:1.5.0" compile "javassist:javassist:3.12.1.GA" compile "commons-io:commons-io:2.5" compile "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.xxx.plugin.gradle' pom.artifactId = 'xxx' pom.version = '1.0.4' //提交到远程服务器: // repository(url: "http://www.xxx.com/repos") { // authentication(userName: "admin", password: "admin") // } //本地的Maven地址设置为E:/Maven repository(url: uri('/Users/lhxia/Downloads')) } } }
打断点不说了。和java一样,点一下就行
在命令行中执行APP的编译命令:
./gradlew assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true
后面两个参数是必须的,表示等待gradle调试。这个时候会卡在这:
表示等待调试。
其实过程很简单,一步一步即可完成插件的配置及调试,后面就可以开发属于自己的插件了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。