java - Gradle Antlr插件失败无法使用Antlr 3.5.2初始化类org.antlr.tool.ErrorManager

标签 java gradle antlr

我试图从以前使用Antlr Eclipse插件生成的旧项目中的Antlr v3语法文件运行生成源。我试图使用Gradle Antlr plugin,并试图使用最新的antlr 3 jar作为依赖项(3.5.2)。我的环境是Mac OSX,并且使用Java 8。

在我的build.gradle中

apply plugin: 'antlr'

dependencies {
  antlr "org.antlr:antlr:3.5.2"
  antlr group:'org.antlr', name: 'ST4', version: '4.1'
}

运行任务generateGrammarSource导致错误:

Failed to run Gradle ANTLR Worker Could not initialize class org.antlr.tool.ErrorManager



--stacktrace选项具有此类的类初始化错误

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.antlr.tool.ErrorManager at org.antlr.Tool.process(Tool.java:426) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.plugins.antlr.internal.AntlrExecuter$Antlr3Tool.invoke(AntlrExecuter.java:72) at org.gradle.api.plugins.antlr.internal.AntlrExecuter$AntlrTool.doProcess(AntlrExecuter.java:143) at org.gradle.api.plugins.antlr.internal.AntlrExecuter$AntlrTool.process(AntlrExecuter.java:113) at org.gradle.api.plugins.antlr.internal.AntlrExecuter.runAntlr(AntlrExecuter.java:51) at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:100) at org.gradle.process.internal.worker.request.WorkerAction.runThenStop(WorkerAction.java:83) ... 8 more



我还没有发现任何类似的错误,并且在查看ErrorManager的源代码时,还不清楚该错误是什么。

最佳答案

似乎我自己通过在build.gradle文件中添加对antlr-runtime的依赖关系解决了它

dependencies {
  antlr "org.antlr:antlr:3.5.2"
  antlr "org.antlr:antlr-runtime:3.5.2"
  antlr group:'org.antlr', name: 'ST4', version: '4.1'
}

关于java - Gradle Antlr插件失败无法使用Antlr 3.5.2初始化类org.antlr.tool.ErrorManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55005356/

相关文章:

java - 如何使用joda time格式化固定毫秒数为hh :mm:ss?

web - Gradle-如何在简单的Java项目中将 war 添加为依赖项

android - 如何将依赖项添加到 build.gradle?

java - ANTLR myParser.java 未生成

clojure - 如何在 Clojure 中使用尾递归遍历 AST

java - 为什么这段代码在没有 volatile 的情况下工作?

java - 参数在 TestNG 中传递默认值

java - 当 setResizing 为 false 时,AnchorPane 显示白色边框 (JavaFX)

java - Gradle 复合构建 - 您是否可以依赖于包含的多项目构建中的 java 子项目?

java - 处理 ANTLR 4 中的错误