2013-05-20 21 views
3

我是新建構Java Web應用程序的& WAR文件。我正在使用構建於Java頁面上的一個相當大的Web應用程序。我們有一個ANT文件,每做一次更改就會重新構建整個應用程序。我想知道是否有可能只重新構建被修改的應用程序的一部分,而不是整個項目。每當我進行更改時重建整個Java應用程序

測試是一個10分鐘的過程,因爲我將進行更改,關閉Tomcat,運行ANT腳本,啓動Tomcat,在瀏覽器中重新加載應用程序,現在需要7分鐘重新構建後首次加載(我也很想知道它在這裏做什麼?)...基本上完成地獄測試。

如果有人可以提出更好的測試策略,我會很棒!也許無論如何,我們只需要ANT腳本重新構建修改後的類。

+2

獨立的項目分成不同的庫這不是必須的,那麼你就只能重新修改過的組件。如果問題在於您只需修改Web應用程序本身(例如,JSP,JavaScript或您的Servlet/Controller類中的某個內容),那麼您運氣不好。順便說一下,知道時間是寶貴的,你必須爲你所做的每一項改變付出很大的代價,然後做出適當的改變,而不是一線改變,以測試改變是否有效。 –

+0

@LuiggiMendoza謝謝!這聽起來像一個似是而非的解決方案。 –

+0

您可以隨時調試tomcat本身,並部署WAR。它將需要一個自定義的tomcat安裝,一個解壓縮的WAR,以及一些讓你的IDE說服它的tomcat項目在你打開的所有其他項目中都有源代碼(以便你可以調試和使用熱代碼替換)。此外,您需要將部署的WAR中的JSP文件替換爲主項目中JSP文件的鏈接,以便自動重新加載到工作端 - 在tomcat中啓用autoreload,ofc。一般來說,不是因爲心靈的模糊,它可能會使你的目的無效 - 測試...... –

回答

1

有幾件事可以做。

  1. 可以在tomcat/temp目錄下修改jsp。此更改將立即可用,無需重新編譯/重新加載

  2. 可以使用遠程Tomcat調試(來自Eclipse)。此調試允許更改源代碼,並且此更改將立即傳播到Tomcat

  3. 組織您的ant腳本的最佳方法是將編譯分成若干個jar文件,然後創建一個war文件。然後重新編譯一次只會在一個jar中發生。

  4. 重新啓動Tomcat的調動下,如果指定重新加載=真正的背景下

+0

謝謝你的名單!選項2,3或4是否會避免@Brian所指的'旋轉'? –

+0

我並沒有完全理解旋轉。重新加載而不重新啓動Tomcat可能會導致內存不足問題,尤其是對於功能不強的服務器上的大型應用程序。因此在生產中我們在大多數情況下重啓Tomcat。但是,測試潛在的內存問題並不重要。過了一段時間,人們可以感覺到重新加載的次數,而不會造成內存問題。 Tomcat 7比內存管理更適合內存管理。 –

相關問題