2012-11-14 56 views
4

我有一個maven多模塊項目。其中一個模塊(編譯爲.jar)僅包含域對象,將在客戶端和服務器端使用(我將這個.jar作爲依賴項添加到其他我的模塊中)。GWT。 Maven的。 GWT模塊<module_name>未在項目源或資源中找到

我知道GWT模塊將使用來自共享.jar的對象,它還必須具有用於成功編譯的源文件。所以,我試圖添加到我的pom.xml兩個:

 <resources> 
      <resource> 
       <directory>src/main/java/<path></directory> 
       <includes> 
       <include>**/*.java</include> 
       <include>**/*.gwt.xml</include> 
       </includes> 
      </resource> 
     </resources> 

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>gwt-maven-plugin</artifactId> 
    <versionRange>[${gwt.version}]</versionRange> 
    <goals> 
     <goal>resources</goal> 
    </goals> 
<plugin> 

但導致.jar不包含GWT模塊源(即gwt.xml)。所有域類的源也被添加(在根目錄.jar),但不是ModuleName.gwt.xml

問題在哪裏?謝謝。

+0

源樹中的哪個位置是gwt.xml文件? –

+0

@MyTitle:當您使用GWT + Maven和構建庫時,請將您的投票作爲GWT庫(放置'.gwt.xml'等)的首選/標準佈局:https:// groups。 google.com/d/topic/google-web-toolkit/Y0dqogsT1Zw/discussion –

回答

2

如果您.gwt.xml文件是src/main/resources/那麼如果指定src/main/java/作爲資源路徑也不會被複制......

你或許應該忽略<resource>部分,讓GWT插件包括源在jar或至少有兩個部分,一個用於.gwt.xml文件(src/main/resources或放置它的位置),另一個用於源代碼(就像現在一樣)。

乾杯,

+2

換言之:如果您有''部分,它會**取代默認的'src/main/resources',它不會' t **將**添加到它(' **/*。gwt.xml'讓我想知道@ MyTitle的'.gwt.xml'而不是'src/main/java')。 –

+0

沒錯,把@Thomas。 –

+0

我的'.gwt.xml'在'ru.company.name.domain'中,我的souce類在'ru.company.name.domain.object'包中。在'src/main/resources'裏面我沒有任何文件。在''部分,我也嘗試了'.gwt.xml'路徑的幾個變體,例如'**/* .gwt.xml','* .gwt.xml',並且我嘗試了完整路徑等等(當然在''節中有相應的路徑變化)。 **無論如何,爲什麼使用'gwt-maven-plugin'導致相同的錯誤?(問題中我的意思是我同時嘗試了兩種方法(分別爲''和'gwt-maven-plugin'),但不是在一起)。謝謝。 – MyTitle

0

我今天解決此錯誤,所以我只是發表我的解決辦法:

多模塊的GWT項目正在建設使用Maven插件GWT需要像pom.xml中的條目:

<modules> 
     <module>../theothermodule</module> 
    </modules> 

爲了編譯。

0

此錯誤有多種解釋。檢查清單:

  • 如果您正在引用gwt模塊,則需要以點表示法指向*.gwt.xml文件,而不使用文件擴展名。例如。 com.example.ThirdPartycom/example/ThirdParty.gwt.xml模塊
  • 導入第三方模塊,添加​​您*.gwt.xml文件
  • ThirdParty.gwt.xml應包含指向翻譯代碼的一個或多個source元素。例如。 <source path='shared' />
  • ThirdParty.jar中的所有可轉換代碼都需要包含明文*.java來源。例如。com/example/shared/Widget.classcom/example/shared/Widget.java都存在
  • ThirdParty.jar是在classpath

注:

  • 如果ThirdParty GWT模塊沒有切入點,它並不需要與GWT編譯器
  • 編譯
  • gwt編譯器不需要額外的配置就可以包含ThirdParty模塊,只要它的jar在類路徑上,並且*.gwt.xml繼承ThirdParty.gwt.xml;這同樣適用於gwt maven插件
相關問題