2011-03-08 91 views
7

我有一個很大的多模塊Maven項目,其中一小部分是GWT中的一個Web GUI。我正在使用,但我不確定如何使我的開發高效。如何在GWT Maven多模塊項目中提高生產力

現在我在開發GWT項目中的東西時正在運行託管模式,並且如果我在此處更改某些內容,則可以在重新加載頁面時立即看到更改。但是,如果在保存大部分後端邏輯的maven模塊中發生了某些變化,我需要在整個項目結構上執行mvn:install,然後再執行gwt:run以再次啓動託管模式。非常耗時...

我試圖按照這裏的說明:http://mojo.codehaus.org/gwt-maven-plugin/user-guide/project.html#Multi-project_setup但它不能按預期方式工作。

是否可以立即看到依賴maven模塊中所做的更改,如果是這樣 - 應如何編寫pom文件?

+0

如果您滿意的答案之一,請接受它作爲有效。謝謝! – Thomas 2011-03-09 16:31:14

+0

我對能夠做到這一點感興趣 - 從我在這裏和其他地方閱讀的內容看,似乎我的獲得多模塊Maven安裝程序以提高GWT效率的可能性並不是太好。 – 2012-05-18 21:30:52

回答

4

如果您使用的是Eclipse和m2eclipse,則可以將項目配置爲resolve dependencies from workspace。引用m2eclipse手冊:

您可以配置一個項目來解析來自工作區的依賴關係。這具有改變Maven查找依賴性工件的方式的效果。如果一個項目被配置爲解決從工作區的依賴性,這些文物並不需要存在於你的本地庫

有了這個設置就沒有必要調用mvn:install對相關模塊。我一直在使用這個設置和JRebel,以便在多模塊maven項目中立即重新加載類已經有一段時間了。

+1

我以前一直在其他項目上使用JRebel,它通常工作得很好。但是,當我將它與GWT混合在一個單獨的Maven模塊中時,我還沒有方便地使用它。在處理GWT和JRebel時你有什麼經驗嗎? – thorseye 2011-03-09 13:51:33

+0

我在過去的1.5年中一直使用Apache Wicket,並且它能夠與Maven和JRebel完美協作。我也嘗試過使用GWT構建的Vaadin,但是我從來沒有在GWT專用的應用中使用它。 – Thomas 2011-03-09 14:07:51

+0

嗯,你有一個很好的觀點,但它似乎無法與GWT正常工作。也許我做錯了什麼。我的所有服務器代碼都被JRebel監視,但是當談到GWT項目中的所有代碼時,JRebel沒有看到任何更改。我在我的所有項目中都有一個由Maven生成的rebel.xml文件(我猜這是要走的路)。所以我仍然不滿意我的項目設置,這就是爲什麼你的答案尚未被接受。 – thorseye 2011-03-10 19:18:28

0

關聯的maven子模塊是必須位於WEB-INF/lib目錄中的庫依賴項。您必須在頂層執行mvn:install的原因是,您必須在構建關聯的子模塊時重新生成該jar,然後在打包war時將其複製到WEB-INF/lib目錄中項目發生。

如果您可以想出一種方法讓您的IDE或其他工具自動更新WEB-INF/lib目錄中的JAR,那麼您應該很好。您可以嘗試讓您的IDE將您的關聯項目自動編譯爲WEB-INF/lib目錄下的分解JAR結構。它將取決於你的Web容器是否會被拾取。我認爲Tomcat可能會適合這一點,但我不確定Jetty。我很快就會嘗試這個。

1

從工作區解決依賴關係不適合我。

我的解決方案:手動將後端項目依賴項添加到運行配置中。

+0

你能再解釋一下嗎?我不明白你的意思。 – thorseye 2011-04-06 06:42:22

+2

RunConfiguration截圖:http://bit.ly/hWxaF9 – averet 2011-04-13 15:05:34