2015-03-02 61 views
1

我正在尋找一種方法來解耦GWT組件。這樣我可以將它集成到其他不同的GWT組件或項目中。如何使GWT解耦組件

例如: 我有一個自定義GWT樹部件(自己的CSS),現在我想通過在項目中添加.jar來在其他GWT應用程序中使用此樹部件。

什麼是最好的辦法呢?

+0

構建Java代碼的最佳方式,還是打包模塊JAR的最佳方式? – Bjartr 2015-03-03 23:07:22

回答

0

一樣,如果你使用Maven,然後

  • 創建一個Maven項目按照GWT包裝結構和創建所有自定義窗口小部件或組件
  • 創建主項目並添加這會根據要求上述項目對此項目的依賴關係,並重新使用了自定義組件(Tree Widget)。

如果你不使用Maven再正常不過的GWT應用程序,然後

  • 創建動態Web應用程序遵循GWT包裝結構和創建所有的自定義窗口小部件,這是結果的.jar項目
  • 創建你的主項目和轉到Java構建路徑,添加外部JARS(將上述項目.jar添加爲外部JARS)到此。

希望這能解決你的問題

0

您可以創建你的組件作爲一個獨立的GWT模塊,那麼你就可以將其導出爲一個jar文件,在任何其他GWT項目輕鬆地使用它。網上有很多這樣的樣本。

0

你可以把你的GWT模塊中包含常見的小部件放入一個單獨的jar文件中,並在需要的時候重用這個jar文件。

我建議你這個Maven插件

http://mojo.codehaus.org/gwt-maven-plugin/

它可以幫助你一起創造GWT模塊與Maven

Maven是來處理在Java項目的依賴關係的最佳途徑之一。

一旦你的jar被創建,你可以將這個jar包含在你需要它的項目的類路徑中。

爲了使用外部GWT模塊的部件還必須從該模塊聲明GWT依賴將

<inherits name="gwtXmlPackageOfYourExternalModule.YourModuleName"/> 

項目

1

編寫一個可重複使用GWT庫的.gwt.xml內( JAR)要比繼承模塊更有意義,因爲您的高級項目(使用該庫)需要訪問類源,而不是編譯代碼。

是否創建實際的工具「模塊」(繼承)取決於您。 GWT不需要這樣做。我只在頂層定義模塊。我的實用程序JAR只是類的集合,就像它們在普通的Java w/o GWT中一樣。

  1. 將代碼:Java類,圖像和其他資源移動到一個單獨的項目/模塊中,它將構建單獨的JAR。

  2. 庫中的JAR文件的Maven將這個:

    <build> 
        <resources> 
         <resource> 
          <directory>src/main/java</directory> 
          <includes> 
           <include>x.y.z/**/*.java</include> 
          </includes> 
         </resource> 
        </resources> 
    

不要忘了包括圖像和其他資源,如果你有他們 - 不只是 「*的.java」。請記住,如果您要分發該模塊,那是您的源文件,因此儘可能限制,並且不包含非GWT內容。

  1. 將該JAR包含在主項目的Maven依賴項中。而已。不要搞亂GWT模塊。

  2. 編輯:確保您在實用工具JAR中使用相同的包結構,如在您的主(消耗)GWT項目中一樣。或者將這些包添加到模塊聲明中。

您的Maven GWT插件應保留在主模塊中,而不是實用程序JAR中。