2012-11-06 70 views
3

我需要如何構建一個多層次的GWT/Spring項目,使搖籃可以建立文物和部署正確的罐子建議..GWT/Gradle項目示例。

谷歌並沒有太大的幫助 - 我可以找到一些文章建立多個項目並確實在Gradle中構建GWT項目,但是,由於遇到以下問題,我發現以下問題,所有這些對於我的問題域看起來都不完整。

  1. 在多項目示例中,GWT依賴項被包含在來自war插件的web應用程序中。

  2. 如果我走下來的gradle單興建三號幹線然後我失去與項目脫鉤..

  3. 兩個客戶端&服務器對某一類文件的依賴關係(對GWT-RPC);目前這些都封裝在客戶端項目中,因此再次導致服務器依賴於客戶端(對於GWT-RPC DTO對象)。這導致我覺得我需要第三個模塊專用於共享類文件源也存在於gwt-client項目中(GWT編譯器選擇這些)

所以;問題是有沒有人遇到過使用Gradle作爲構建工具&處理上述某些/所有問題的多層GWT示例?

在此先感謝, 伊恩。

回答

1

我們使用的是單一版本,但我們使用maven依賴插件來解決第2點 - 「項目耦合」問題。

最終,您需要三種類型的代碼:服務器,客戶端和共享。將這些單獨包裝在單獨的瓶子中(如第3點所述)的優點是,您的服務器jar大小將會減少,並且您可以在.gwt.xml文件中使用更自由的源代碼目錄。

如果您決定使用單個jar/war,那麼您將在服務器上包含額外的未使用的客戶端類。這可能會導致代碼泄漏的運行時異常,並且可能會導致服務器性能下降。我們通過在構建時強制實現分層分離(使用Classcycle)來避免運行時異常,額外客戶端類的額外性能開銷應該是微乎其微的。編譯後,您可以使用後期構建任務,從jar中刪除客戶端代碼。

對不起,我不太瞭解gradle,但我想我會盡力幫忙。

+0

非常感謝您在此上的時間;非常有趣的閱讀 - 謝謝... – Ian

+0

@Ian - 沒問題。由於具有這些「三種流派」的代碼,GWT構建本質上是複雜的。 – logan