【发布时间】:2018-11-18 20:36:04
【问题描述】:
我正在写一个 Gradle 插件,需要扫描 Kotlin 文件并查找类中是否包含某个接口。例如,使用以下 sn-p 代码:
class MyClass {
interface MyInterface {
fun doSomething()
}
}
我的插件将在控制台上打印找到接口 MyInterface,对于这个 sn-p:
class MySecondClass {}
不会打印任何东西。
我已经成功地创建了插件结构和一个像这样的 DefaultTask,我从用户输入中获取需要检查的文件(用 Kotlin 编写):
open class MyGradleTas : DefaultTask() {
@InputFile lateinit var inputFile: File
@OutputDirectory lateinit var outputDirectory: File
@TaskAction
fun run() {
// How can I inspect the Java/Kotlin code inside the inputFile object
}
}
如何检查 inputFile File 对象?有没有办法将其转换为 UAST 或 PSI?如果有,怎么做?
【问题讨论】:
标签: java gradle kotlin gradle-plugin