2013-12-18 25 views
0

我使用的插件和ANTLR的版本3.3轟下一個項目生成代碼稱爲CBCTokens.g。在同一個包中,我有一個名爲MyScribe.g的解析器語法文件,它使用tokenVocab = CBCTokens引用令牌。我在同一個目錄中也有一個樹語法。Maven的Antlr3插件怪異的位置

但是當我嘗試執行構建,我的第一個文件得到一個錯誤的插件遇到了一句話:

Error(1): cannot write file : java.io.FileNotFoundException: H:\compiler\target\generated-sources\antlr3\H:\compiler\src\main\antlr3\CBCTokensLexer.java (The filname, directory name, or volume label syntax is incorrect) 

在我看來,該插件是使用一些奇怪的組合確定輸出路徑baseDir和默認輸出目錄。

我缺少什麼配置?

感謝

+1

你能顯示你的pom文件嗎? – khmarbaise

+0

[pom.xml](https://skydrive.live.com/redir?resid=6CBDE11DA0BC715C!262&authkey=!AJrBy_6vFdORqIY&ithint=file%2c.xml) – PerennialN00b

+0

這是多模塊構建的pom部分嗎? – khmarbaise

回答

0

首先最好的事情是永遠不會生成代碼爲src/main/文件夾什麼的。這意味着您的配置只需刪除<outputDirectory>標記並刪除<sourceDirectory>因爲它是antlr3-maven插件的默認值。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.antlr</groupId> 
     <artifactId>antlr3-maven-plugin</artifactId> 
     <version>3.3</version> 
     <configuration> 
     <printGrammar>false</printGrammar> 
     <verbose>true</verbose> 
     </configuration> 
     <executions> 
     <execution> 
      <goals> 
      <goal>antlr</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 
+0

不,似乎沒有幫助。我發現這個[Nabble螺紋(http://antlr.1301665.n2.nabble.com/antlr3-maven-plugin-tries-to-generate-the-xxxLexer-java-when-using-a-combined-lexer-parser-grammar-td7143628 .html)這似乎相關。如果確實如此,解決這個問題似乎沒有任何進展。 – PerennialN00b