Antlr4 maven插件在不同目录下找不到语法文件

use*_*572 4 maven antlr4

我正在使用 antlr4 maven 插件来构建我使用 antlr4 的 maven 项目:

     <groupId>org.antlr</groupId>
     <artifactId>antlr4-maven-plugin</artifactId>
     <version>4.0</version>
Run Code Online (Sandbox Code Playgroud)

我从一个语法文件开始,然后设置了 pom.xml,一切都构建得很好。

然后我决定将我的语法分成逻辑部分,因此使用了几个语法文件,但在不同的目录中(因此生成的代码将放入单独的包中),但仍然都在同一个根目录 src/main/antlr4 下。

我使用“顶级”语法文件中的 import 语句来导入其他所需的文件。

但是现在maven在尝试构建时给了我以下错误:

[ERROR] Message{errorType=CANNOT_FIND_IMPORTED_GRAMMAR
Run Code Online (Sandbox Code Playgroud)

为什么 antlr 找不到我正在导入的其他文件?

谢谢,瑞安。

小智 5

我遇到了同样的问题并通过以下配置解决了:

<libDirectory>${basedir}/src/main/antlr4/yourGrammarDirectory</libDirectory>
Run Code Online (Sandbox Code Playgroud)

看这里:如何在 Antlr4 中导入语法以使用 maven 构建