最近在写基于asm的hook框架,然后网上大部分教程都说groovy写plugin,但是我又想在transform代码里用kotlin。毕竟kotlin在批量处理数据的时候语法糖真的好方便。直接编译的时候主要问题是gradle的编译顺序问题,导致在运行groovy代码的时候kotlin代码还没有完成编译,这边的解决办法是在插件项目的build.gradle文件里建立编译依赖,让groovy编译的时候先完成kotlin代码的编译工作。当然结果是groovy代码可以引用kotlin代码不过反过来就不行了。直接上代码:
compileKotlin.dependsOn = compileKotlin.taskDependencies.values - 'compileJava'
compileGroovy.dependsOn compileKotlin
compileGroovy.classpath += files(compileKotlin.destinationDir)
classes.dependsOn compileGroovy
网友评论