当前位置: 首页 > 知识库问答 >
问题:

使用maven antlr4插件从其他工件生成语法

湛联
2023-03-14
META-INF/
META-INF/MANIFEST.MF
org/
org/boazglean/
org/boazglean/dabar/
org/boazglean/dabar/grammer/
org/boazglean/dabar/grammer/DabarLexer.g4
org/boazglean/dabar/grammer/DabarParser.g4
META-INF/maven/
META-INF/maven/org.boazglean.dabar/
META-INF/maven/org.boazglean.dabar/grammer/
META-INF/maven/org.boazglean.dabar/grammer/pom.xml
META-INF/maven/org.boazglean.dabar/grammer/pom.properties
<plugin>
    <groupId>org.antlr</groupId>
    <artifactId>antlr4-maven-plugin</artifactId>
    <version>4.0</version>
    <executions>
        <execution>
            <goals>
                <goal>antlr4</goal>
            </goals>
            <configuration>
                <sourceDirectory>${antlr.dir}</sourceDirectory>
                <listener>true</listener>
                <visitor>true</visitor>
                <arguments>
                    <argument>-package</argument>
                    <argument>org.boazglean.dabar.parser</argument>
                </arguments>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>extract-grammer</id>
            <phase>initialize</phase>
            <goals>
                <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
                <includeArtifactIds>grammer</includeArtifactIds>
                <outputDirectory>${antlr.dir}</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>
head -n 2 parser/target/generated-sources/antlr4/org/boazglean/dabar/grammer/DabarLexer.java 

// Generated from org/boazglean/dabar/grammer/DabarLexer.g4 by ANTLR 4.0
package org.boazglean.dabar.parser;

我是否遗漏了一些应该用来配置antlr4的命令?

共有1个答案

贺轶
2023-03-14

>

  • 创建语法文件夹结构/src/main/antlr4/org/nimy/antlr4/xml/xxxx.g4

    在pom.xml中

    <plugin>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-maven-plugin</artifactId>
        <version>4.1</version>
        <configuration>
            <listener>true</listener>
            <visitor>true</visitor>
            <arguments>
                <argument>-package</argument>
            </arguments>
        </configuration>
        <executions>
            <execution>
                <id>antlr-generate</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>antlr4</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    

    GitHub上的antlt4 maven插件源代码。试着阅读它并获得配置项目的方法。antlr4源代码

  •  类似资料:
    • 我在配置以从WSDL和多个XSD文件生成Java类时遇到问题,这些文件都存在于同一个标准目录。 如何将jaxb2 maven插件与内联XSD一起使用?只因为答案正确地建议在插件配置中使用参数,但这个问题实际上与内联XSD有关,而我的XSD是外部的。 这里列出了插件目标参数。 我的插件配置是: 我正在用

    • 我目前正在研究Xtext,以创建一个可重用的DSL和一个构建在DSL之上的工件。简化后的项目布局如下: Projecta:包含基于XText的DSL、feature-project、updatesite等。 projectb:使用projectA中的工件生成代码。 projectc:使用从projectb生成的代码 使用Maven和Xtext构建projectA不是问题(网上已经有几个例子了),但

    • 问题内容: 是否可以使用其他JVM语言(例如Scala和Clojure)来开发IntelliJ IDEA插件?还是为此目的必须使用Java?我在网络上找不到任何指针,因此在此处发布了问题。 问题答案: 是的,这完全有可能。 本质上,任何插件都是IDEA API提供的几个扩展点的一组扩展。这些扩展是实现预定义接口的常规Java类,并且清单中引用了这些类。另外,您可以将所有库与插件捆绑在一起。因此,如

    • 我有2个插件A和b。我在Require-Bundle部分有插件B。但是当我试图从A类中获取B的资源时 我得到null。如果我把B的资源(文件夹)放在A的根目录上,一切都像一个魅力。我错过了什么吗? 注:我读了拉尔斯·沃格尔的文章 ^这个解决方案在我从eclipse运行插件时有效,但当我将插件打包到jar并尝试从本地更新站点安装时 附言:我也读过几个关于堆栈溢出的相关问题,但无法找到答案: Java

    • 我想为我的项目添加Liquibase DB迁移支持。它也使用Spring靴。现在,我想通过使用Hibernate和JPA实体类,在没有DB连接的情况下生成changelog。但它抛出了一个错误: 我没有持久单元XML文件,因为这都是由Spring Boot在运行时完成的。该项目是一个多模块项目。Liquibase插件配置在父POM中。实体在子模块中。 这是Liquibase的Maven插件配置: