2013-08-08 3 views
6

Ich versuche, ein antlr Projekt mit Maven zu bauen, ist die Projektstruktur wieWie Grammatik in Antlr4 importieren mit Maven bauen

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

, in der G1 G2 Importe als wie:

grammar G1; 
import G2; 

wenn jedoch mit maven kompilieren, ich habe folgende Fehlermeldung:

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

Es funktioniert kein Problem, wenn ich G1.g4 und G2.g4 DIREC setzen tly unter dem Verzeichnis antlr4. Es sieht für mich aus, dass, wenn die Grammer Dateien in ein Paket gesetzt werden, muss es spezielle Syntax, um es in der Import-Anweisung zu verweisen?

ich dieses Problem bemerken: Antlr4 maven plugin cannot find grammar files in different directories

aber hier sind die Grammatiken in einem Verzeichnis.

Antwort

6

Ich denke, Sie brauchen die Grammatik G2.g4 im Importpaket (src/main/antlr4/imports). Aber du wirst deine Grammatik dupliziert haben. Um dies zu vermeiden, die Importeinstellung wie dies der antlr Plugin ändern:

<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> 

Beachten Sie die Konfiguration libDirectory.