2014-12-06 34 views
0

我正在使用Maven處理器插件來生成源代碼。Maven處理器插件在gwtp應用程序中生成源的順序

 <!-- Run annotation processors on src/home/java sources --> 
     <plugin> 
      <groupId>org.bsc.maven</groupId> 
      <artifactId>maven-processor-plugin</artifactId> 
      <version>2.2.4</version> 
      <executions> 
       <execution> 
        <id>process</id> 
        <goals> 
         <goal>process</goal> 
        </goals> 
        <phase>generate-sources</phase> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>com.gwtplatform</groupId> 
        <artifactId>gwtp-processors</artifactId> 
        <version>${gwtp.version}</version> 
       </dependency> 
      </dependencies> 
     </plugin> 

問題是我已經生成了依賴於這些生成的類的類。

E.g.

com.project.client.application.event.DevInfoEvent.javacom.project.shared.dto.generated.dev.DevInfoDto.java

兩個文件均產生DevInfoDto的classmember,但在DevInfoEvent是越早產生的問題,因此我得到了一個錯誤,它無法解析DevInfoDto

當我第二次從eclipse運行generate-sources,沒關係,因爲DevInfoDto已經生成了。但是這種行爲並不好我。 (不想在CI服務器上運行compile兩次)。

有沒有辦法告訴maven processor plugin某些命令,它應該生成類?

回答

1

我會想辦法讓com.project.clientcom.project.shared兩個不同的Maven項目,申報shared作爲client依賴並聚集它們作爲<module> S IN父項目。這樣,在構建這個父項目時,Maven的反應器負責正確的構建順序。

這也是有道理的另一種方式:shared功能可能不同於client功能。

相關問題