我剛剛開始使用Maven作爲構建系統進行GWT開發。是否有GWT Maven項目結構,這不會混淆責任?
我來自Java + Flex世界,很自然地我有客戶端模塊和服務器端模塊乾淨地分開。
在深入挖掘GWT的最佳實踐並深入挖掘的同時,對我來說,GWT項目的默認配置越來越像是一團糟的責任。尤其是涉及到多模塊項目時。
我明白了,約定規定服務器端邏輯屬於「服務器」包,共享代碼「共享」,並由GWT編譯器在「客戶端」包中編譯爲HTML + JavaScript。所有的代碼都轉到src/main/java。到現在爲止還挺好。
不管我怎麼試着看到它......對我來說,在「客戶端」包中的東西簡直就是死代碼。即使Java編譯器將其編譯爲類,這些類也不會在運行時使用,只需要在編譯階段向GWT編譯器提供輸入。所以即使它看起來像Java,它實際上也不是,只是看起來像Java。有些人覺得很髒,把它們放在與「實時」代碼相同的罐子裏。
不會像這樣更有意義行家結構:
/src/
/src/main/
/src/main/java
/src/main/shared
/src/main/gwt
而且具有Java的編譯器插件使用的src/main/java和的src/main /共享和GWT編譯器使用src/main/gwt和src/main/shared?
如果構建會產生兩種類型的工件,包括來自src/main/java和src/main/shared的clases的普通「jars」和第二個「gwt」包含src/main/gwt和src/main/shared的類和源。
我不會添加一個依賴到一些混合jar,但可以決定是否要導入一些GWT組件或如果我想導入一些服務器端功能。
接下來的事情就是GWT默認是將XML,資源和其他東西放在src/main/java目錄... XML & &資源!=的Java ;-)
或者是有一個真正原因所有這一切,我只是還沒有意識到......或者我只是開始變得骯髒,而不是像這樣的東西?
Chris
我剛剛討論了一個場景,其中我的服務器包中有一個Sample Singleton,並且很容易從客戶端代碼調用此方法。所以對我來說,清潔靈魂將有3個項目(客戶,共享,服務器)......但我想這會大大地打擊事情。 – 2013-02-22 11:53:13
我從不打擾共享,我不喜歡GWT RMI,太混亂。我只是將XML用於客戶端/服務器通信。 GWT有xml處理。 – NickJ 2013-02-22 13:10:41