ANTLR4不适用于Maven

时间:2017-04-01 20:47:19

标签: eclipse maven antlr antlr4 antlr3

我总是成功地将ANTLR4与Eclipse中的Maven结合使用。 我只想更改存储语法的默认目录,因为我不喜欢标准路径 src / main / antlr4 。这个路径的问题是创建一个新的java包,我真的不想要。 所以我只是决定在我的项目中创建另一个名为 grammar 的目录,其中包含另一个名为 imports 的目录。我只是遵循网站指南这样做。 尽管如此,当我更改语法时,即使使用maven命令,它也不会自动生成新的源!

所以,这是我的配置文件pom.xml:

<!-- ANTLR4 -->
        <plugin>
            <groupId>org.antlr</groupId>
            <artifactId>antlr4-maven-plugin</artifactId>
            <version>4.5.3</version>
            <executions>
                <execution>
                    <configuration>
                        <goals>
                            <goal>antlr4</goal>
                        </goals>
                        <libDirectory>grammar/imports</libDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>

Eclipse files

如您所见,目标目录为空。在此更改之前,内部有一个 generated-sources 目录,包含所有.java文件。

那么,错误在哪里?

1 个答案:

答案 0 :(得分:1)

正确的方法是:

<!-- ANTLR4 -->
        <plugin>
            <groupId>org.antlr</groupId>
            <artifactId>antlr4-maven-plugin</artifactId>
            <version>4.5.3</version>
            <executions>
                <execution>
                        <goals>
                            <goal>antlr4</goal>
                        </goals>
                        <configuration>
                            <libDirectory>grammar/imports</libDirectory>
                        </configuration>
                </execution>
            </executions>
        </plugin>  

根据Maven文档https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_executions_Taghttps://maven.apache.org/guides/mini/guide-default-execution-ids.html <configuration>代码必须与<goals>代码内的<execution>代码相同。 >

事实上,ANTLR4 Maven插件中的文档是错误的: http://www.antlr.org/api/maven-plugin/latest/examples/libraries.html