2014-01-24 46 views
1

我正在使用Maven構建我的GWT項目。我使用Gin生成一些樣板代碼:爲什麼Gin會在「target/classes」目錄中生成源文件?

package com.lokur.motd.client.events; 

import com.gwtplatform.dispatch.annotation.GenEvent; 

@GenEvent 
public class EditorChange { 
} 

但是,當我運行「命令mvn全新安裝」命令,Maven是產生杜松子酒相關的Java源在target/classes/com/lokur/motd/client/events目錄。爲什麼.java文件會進入classes目錄?

我使用下面的Maven插件生成的文件夾target/generated-sources Java源:

<plugin> 
    <groupId>org.bsc.maven</groupId> 
    <artifactId>maven-processor-plugin</artifactId> 
    <version>2.0.5</version> 
    <executions> 
     <execution> 
      <id>process</id> 
      <goals> 
       <goal>process</goal> 
      </goals> 
      <phase>generate-sources</phase> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>add-source</id> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>add-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
        <source>target/generated-sources/apt</source> 
       </sources> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

在這種情況下,越來越產生了兩個EditorChangeEvent.java文件:一個在generated-sources文件夾;另一個在target/classes/<..package..>文件夾中。 因此,引起下面編譯失敗:

duplicate class: 
com.lokur.motd.client.events.EditorChangeEvent 

回答

0

雖然不能明白爲什麼在「Java源文件」打算到「類」目錄,這個問題與我們的項目支持的GWT的版本。 由於項目未配置爲使用杜松子酒,因此它不支持@GenEvent。因此,手動創建了Event和Handler類,而不是依賴於Gin的註釋。現在,它運作良好。關閉此線程。

0

問題是,org.bsc.maven.maven-processor-plugin和編譯器插件正在生成(相同)源到不同的文件夾。解決方案是禁用一個處理器。在我的解決方案中,我禁用了org.bsc.maven.maven-processor-plugin link

相關問題