如何获得有关antlr4 maven插件的帮助

如何获得有关antlr4 maven插件的帮助,antlr4,Antlr4,antlr4 maven插件似乎不是antlr4网站上的文档。Antl4 maven插件有一个帮助目标,可以使用maven执行,如下所示: mvn antlr4:help -Ddetail=true 那可能会让你一无所获,就像我一样。试试这个: mvn org.antlr:antlr4-maven-plugin:help -Ddetail=true 产生: [INFO] Scanning for projects... [INFO]

antlr4 maven插件似乎不是antlr4网站上的文档。

Antl4 maven插件有一个帮助目标,可以使用maven执行,如下所示:

mvn antlr4:help -Ddetail=true

那可能会让你一无所获,就像我一样。试试这个:

mvn org.antlr:antlr4-maven-plugin:help -Ddetail=true
产生:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- antlr4-maven-plugin:4.0:help (default-cli) @ standalone-pom ---
[INFO] ANTLR 4 Maven plugin 4.0
Maven plugin for ANTLR 4 grammars

This plugin has 2 goals:

antlr4:antlr4
Parses ANTLR 4 grammar files *.g4 and transforms them into Java source files.

Available parameters:

arguments
  A list of additional command line arguments to pass to the ANTLR tool.

atn
  If set to true then the ANTLR tool will generate a description of the ATN
  for each rule in Dot format.

encoding
  specify grammar file encoding; e.g., euc-jp

excludes
  A set of Ant-like exclusion patterns used to prevent certain files from
  being processed. By default, this set is empty such that no files are
  excluded.

forceATN
  Use the ATN simulator for all predictions.

includes
  Provides an explicit list of all the grammars that should be included in
  the generate phase of the plugin. Note that the plugin is smart enough to
  realize that imported grammars should be included but not acted upon
  directly by the ANTLR Tool. A set of Ant-like inclusion patterns used to
  select files from the source directory for processing. By default, the
  pattern **/*.g4 is used to select grammar files.

libDirectory
  Specify location of imported grammars and tokens files.

listener
  Generate parse tree listener interface and base class.

options
  A list of grammar options to explicitly specify to the tool. These options
  are passed to the tool using the -D<option>=<value> syntax.

outputDirectory
  Specify output directory where the Java files are generated.

sourceDirectory
  The directory where the ANTLR grammar files (*.g4) are located.

treatWarningsAsErrors
  Treat warnings as errors.

visitor
  Generate parse tree visitor interface and base class.

antlr4:help
Display help information on antlr4-maven-plugin.
Call mvn antlr4:help -Ddetail=true -Dgoal=<goal-name> to display parameter
details.

Available parameters:

detail
  If true, display all settable properties for each goal.

goal
  The name of the goal for which to show help. If unspecified, all goals
  will be displayed.

indentSize
  The number of spaces per indentation level, should be positive.

lineLength
  The maximum length of a display line, should be positive.


[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.635s
[INFO] Finished at: Wed Jul 03 14:52:12 EDT 2013
[INFO] Final Memory: 3M/81M
[INFO] ------------------------------------------------------------------------

现在有两个帮助链接:

我们正在努力使Maven站点文档在线托管

我将语法放在与包中的Java文件相同的文件夹中,希望生成的代码出现在该文件夹中

因为我在顶层声明了我的源目录,如下所示:

<build>
  <sourceDirectory>src</sourceDirectory>
</build>
我将对ANTLR 4 Maven插件使用以下配置:

<plugin>
    <groupId>org.antlr</groupId>
    <artifactId>antlr4-maven-plugin</artifactId>
    <version>4.0</version>
    <configuration>
        <sourceDirectory>${basedir}/src</sourceDirectory>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>antlr4</goal>
            </goals>
        </execution>
    </executions>
</plugin>

帮助是有限的,但除了这个问题的其他答案外,我发现以下地方很有用:

似乎是权威文档,包括示例 底部的mvn部分有一些基本信息
看起来maven插件站点现在已发布:


您还可以查看,其中描述了用于生成和测试ANTLR 4语法的两个插件。

您只是在显示输出,我不确定我是否会将其称为答案。+1用于在尚未下载antlr4工件的情况下包含所需的完全限定命令。请注意,这仅在您已下载适当工件的情况下才有效@托米的回答在第一次起作用,然后在随后的通话中起作用。