IDE可识别ANTLR生成的代码,但Kotlin编译失败

IDE可识别ANTLR生成的代码,但Kotlin编译失败,kotlin,gradle,intellij-idea,antlr4,Kotlin,Gradle,Intellij Idea,Antlr4,我们试图在kotlin项目中使用ANTLR生成的java代码。代码已成功生成,Intellij IDE可识别代码并提供自动完成功能,但在编译项目时,Kotlin编译器会因ANTLR生成的java文件出现未解析引用错误而失败 我们有以下设置: 爪哇14 Kotlin 1.4.10 梯度6.3 ANTLR4.8-1(带有antlrgradle插件) ANTLR解析器生成到build/generated src/ANTLR/main,IDE将其标记为generated sources root。生

我们试图在kotlin项目中使用ANTLR生成的java代码。代码已成功生成,Intellij IDE可识别代码并提供自动完成功能,但在编译项目时,Kotlin编译器会因ANTLR生成的java文件出现
未解析引用
错误而失败

我们有以下设置:

  • 爪哇14
  • Kotlin 1.4.10
  • 梯度6.3
  • ANTLR4.8-1(带有
    antlr
    gradle插件)
ANTLR解析器生成到
build/generated src/ANTLR/main
,IDE将其标记为
generated sources root
。生成文件的路径也会添加到Kotlin编译器类路径中
compileJava
compileKotlin
gradle任务都依赖于
generateGrammarSource
ANTLR插件任务

下面是最小的可复制示例项目(运行
gradlebuild
):


有什么想法吗?我们是否错过了项目的配置?

没有回答您的问题,但您可以使用以下内容:?该示例似乎设置不正确。我尝试先用Gradle构建它,然后不用Gradle BS使用直接向上的命令行编译。它仍然没有建立。然后,我注意到目录结构设置不正确,因为-classpath不起作用。猜测它应该是
src/main/antlr/com/example/query
而不是
src/main/antlr/com.example.query
。这修复了建筑,但天知道它是否有效。没有readme.md,无法构建…不好。谢谢你们的回答@kaby76,你对目录结构的观察解决了这个问题。出于某种原因,它生成了名为
com.example.query
的主源目录(在
src/main/antlr/
中),而不是为每个步骤创建子文件夹结构@我很高兴它能起作用。我会将您的观察结果作为问题发布在Github存储库中。