【问题标题】:Why does my ANTLR build Ant task fail with "Unable to determine generated class"?为什么我的 ANTLR 构建 Ant 任务失败并显示“无法确定生成的类”?
【发布时间】:2011-10-15 13:06:06
【问题描述】:

我正在尝试使用 ANTLR3 task for Ant,但我收到“无法确定生成的类”构建失败消息。

一项快速研究表明,许多人都遇到过同样的问题,但没有提供解决方案(请参阅下面的链接)。

有人可以提出不使用常规 Java Ant 任务的解决方案吗?

外部链接:

【问题讨论】:

  • 不是一个答案,而是一个评论,因为这只是一个猜测:也许 ANT 使用的是旧版本的 ANTLR?如果你在你的 shell 上做一个ant -diagnostics,那么ANT_HOME/lib jar listing 下应该只有ant-antlr.jarant-antlr3.jar。如果还有antlr2?.jar,请尝试删除它。

标签: java ant build-process antlr


【解决方案1】:

Ant 1.8.2(最新版本)中包含的antlr 任务似乎依赖于 ANTLR 2.7.2(在$ANT_HOME/lib/ant-antlr.pom 中定义并使用$ANT_HOME/lib/ant-antlr.jar

任务正在扫描目标文件以查找匹配^class (.*) extends .* 的行,其中第一个匹配组将用作生成文件的名称。这整个语法似乎已经在 ANTLR 3.x 中被删除了,或者至少是可选的,因为我可以使用你提到的常规 java 任务解决方法在没有它的情况下生成解析器。

http://antlr.org/ 的首页上的“文件共享”标题下有一个指向ANTLR v3 task for Ant 的链接,但不幸的是,它似乎不是我希望的那种直接替换。实际上,这似乎很复杂,所以我一直坚持使用普通的 java 任务。

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2015-08-11
    • 2020-10-22
    • 2017-10-30
    • 2021-05-08
    • 2015-11-18
    相关资源
    最近更新 更多