介绍一种高效率调试gradle插件的方法,使用buildSrc调试方法
原理是gradle会默认在配置初始化前,编译buildSrc这个项目,可以是java、groovy、kotlin项目,并把项目配置到classpath下。
如果buildSrc是一个groovy项目,就默认帮我们配置了gradle插件了,在项目中我们就可以直接apply我们开发的插件了。
1、在我们的项目中,新建一个名为buildSrc的java项目
切记不能是androidLibray项目,在高版本的AndroidStudio(我的是3.5.1),会编译失败。
2、把我们开发的plugin代码全部粘贴过来,如果所示:
3、gradle插件配置
- 仓库要首先配置,有时会出现编译不过的情况
- 当然也可以配置项目代码的路径
apply plugin: 'groovy'
repositories {
jcenter()
google()
mavenCentral()
}
dependencies {
implementation localGroovy()
implementation gradleApi()
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'org.javassist:javassist:3.22.0-GA'
implementation 'com.squareup.okio:okio:1.14.0'
implementation "com.android.tools.build:gradle:3.1.4"
}
sourceSets {
main {
java.srcDirs = ['src/main/java',
'../profile-gradle-plugin/src/main/java',
'../crashlyplugin/src/main/java',
'../httpsverifyplugin/src/main/java',
'../trafficstatsplugin/src/main/java'
]
groovy.srcDirs = ['src/main/groovy',
'../profile-gradle-plugin/src/main/groovy',
'../crashlyplugin/src/main/groovy',
'../httpsverifyplugin/src/main/groovy',
'../trafficstatsplugin/src/main/groovy'
]
resources.srcDirs = ['src/main/resources',
'../profile-gradle-plugin/src/main/resources',
'../crashlyplugin/src/main/resources',
'../httpsverifyplugin/src/main/resources',
'../trafficstatsplugin/src/main/resources'
]
}
}
4、编译一下项目,项目通过之后便可以在项目中apply我们开发的plugin了。
参考文章:
https://jrebel.com/rebellabs/using-buildsrc-for-custom-logic-in-gradle-builds/
https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#sec:build_sources