2013-08-08 9 views
6

मैं Maven के साथ एक antlr परियोजना के निर्माण के लिए कोशिश कर रहा हूँ के साथ निर्माण करने के लिए, परियोजना संरचना की तरहAntlr4 में व्याकरण आयात करने के लिए कैसे Maven

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

है, जिसमें तरह के रूप में G1 आयात G2:

grammar G1; 
import G2; 

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

यह अगर मैं G1.g4 और G2.g4 निदेशक डाल कोई समस्या नहीं काम करता है:

हालांकि, जब Maven के साथ संकलन, मैं निम्नलिखित त्रुटि मिली antlr4 निर्देशिका के तहत tly। मुझे लगता है कि जब पैकेज में ग्रामर फाइलें डालती हैं तो इसे आयात कथन में संदर्भित करने के लिए विशेष वाक्यविन्यास की आवश्यकता होती है?

मैं इस मुद्दे को नोटिस: Antlr4 maven plugin cannot find grammar files in different directories

लेकिन यहाँ, व्याकरण एक एक निर्देशिका में हैं।

उत्तर

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> 

नोट विन्यास libDirectory

संबंधित मुद्दे