首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查/读取Gradle插件中的Java文件

如何检查/读取Gradle插件中的Java文件
EN

Stack Overflow用户
提问于 2018-06-09 02:25:23
回答 2查看 213关注 0票数 0

我正在写一个Gradle插件,它需要扫描Kotlin文件,并找到类中是否包含特定的接口。例如,使用以下代码片段:

代码语言:javascript
复制
class MyClass {
    interface MyInterface {
        fun doSomething()
    }
}

我的插件将在控制台上打印找到接口MyInterface的信息,并显示以下代码片段:

代码语言:javascript
复制
class MySecondClass {}

不会打印任何东西。

我已经成功地创建了插件结构和类似这样的DefaultTask,其中我从用户输入(用Kotlin编写)中获取需要检查的文件:

代码语言:javascript
复制
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文件对象?有没有办法把它转换成UAST或PSI?如果是这样的话,是怎么做的?

EN

回答 2

Stack Overflow用户

发布于 2018-06-09 02:44:45

所以我找到了这个项目:http://javaparser.org/,我相信它会把我带到正确的方向,但欢迎任何建议,因为我不知道这是否是首选/正确的方法

票数 1
EN

Stack Overflow用户

发布于 2018-06-09 04:12:31

我同意您的想法,即使用解析器是解决此问题的正确方法。我发现a discussion of parsing Kotlin上有两个使用antlr4 grammars to parse Kotlin的GitHub项目的指针。The second project看起来基本上是前者的副本,但提供了一些更有用的示例来说明如何使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50766462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档