2013-08-08 6 views
6
私はMavenの持つANTLRプロジェクトを構築しようとしている

を構築するためにAntlr4で文法をインポートする方法、プロジェクト構造はは、Mavenの

src/main + 
     |-antlr4 
      |-fo/bar 
        |-G1.g4 
        |-G2.g4 
      |-imports 

ようにしているなどのG1の輸入G2:

grammar G1; 
import G2; 
Mavenを使用してコンパイルするとき

は、しかし、私は次のエラーを得た:私はG1.g4とG2.g4 DIRECを置けば

[ERROR] Message{errorType=CANNOT_FIND_IMPORTED_GRAMMAR, args=[G2, fo\bar\G1.g4], e=null, fileName='null', line=-1, charPosition=-1} 

それは何の問題も働きませんantlr4ディレクトリの下にある。 Grammerファイルをパッケージに入れると、import文でそれを参照する特別な構文が必要になると私は思っていますか?

私はこの問題に気づく: Antlr4 maven plugin cannot find grammar files in different directories

が、ここで、文法は1つのディレクトリです。

答えて

6

インポートパッケージ(src/main/antlr4/imports)にG2.g4文法が必要だと思います。 しかし、文法は重複しています。これを避けるために、このようなANTLRプラグインのインポート設定を変更します。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.antlr</groupId> 
     <artifactId>antlr4-maven-plugin</artifactId> 
     <version>4.1</version> 
     <configuration> 
     <libDirectory>${basedir}/src/main/antlr4/fo/bar</libDirectory> 
     </configuration> 
     <executions> 
     <execution> 
      <goals> 
      <goal>antlr4</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

注設定libディレクトリを。

関連する問題