在Antlr4 maven插件中指定包的格式是什么?

Bri*_*ent 7 maven antlr4

在Antlr4 maven插件antlr4-maven-plugin中指定包的格式是什么?

我觉得我应该能够做到以下几点:

<plugin>
    <groupId>com.tunnelvisionlabs</groupId>
    <artifactId>antlr4-maven-plugin</artifactId>
    <version>4.0</version>
    <configuration>
        <arguments>package my.package.name</arguments>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>antlr4</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但这会导致以下错误:

[ERROR] Failed to execute goal com.tunnelvisionlabs:antlr4-maven-plugin:4.0:antlr4 (default) on project my_project: Unable to parse configuration of mojo com.tunnelvisionlabs:antlr4-maven-plugin:4.0:antlr4 for parameter arguments: Cannot assign configuration entry 'arguments' with value 'package my.package.name' of type java.lang.String to property of type java.util.List -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

Sam*_*ell 7

程序包将根据项目中文件的位置自动确定,类似于为Java文件确定程序包的方式.输出也放置在由源文件的位置确定的位置.要更改生成代码的包,您需要移动语法文件.

其他参数可以像这样指定:

<arguments>
  <argument>arg1</argument>
  <argument>arg2</argument>
</arguments>
Run Code Online (Sandbox Code Playgroud)


meb*_*ada 5

如果您是我,我将为每个程序包创建一个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>
Run Code Online (Sandbox Code Playgroud)

但是通常,当我在Maven配置中传递参数时,我将执行以下操作。但我不确定antlr4中的语法

<plugin>
<groupId>com.tunnelvisionlabs</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>4.0</version>
<configuration>
    <arguments>
      <argument>-package</argument>
      <argument>my.package.name</argument>

   </arguments>
</configuration>
<executions>
    <execution>
        <goals>
            <goal>antlr4</goal>
        </goals>
    </execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

编辑:注意-前面的,package以便antlr-maven-plugin会将其识别为参数

  • 在添加选项减号后为我工作:&lt;argument&gt; -package &lt;/ argument&gt; (5认同)

don*_*gpf 5

您的配置参数语法错误。

请将 antlr4-maven-plugin 的配置从

<configuration>
    <arguments>package my.package.name</arguments>
</configuration>
Run Code Online (Sandbox Code Playgroud)

到:

<configuration>
    <arguments>
        <argument>-package</argument>
        <argument>my.package.name</argument>
    </arguments>
</configuration>
Run Code Online (Sandbox Code Playgroud)