我想弄清楚開發和發佈一個相當簡單的web應用程序的最佳方式,而且我遇到了幾個問題。我將概述我所做的決定,因爲我已經清除了一些地方......非常感謝任何幫助!java web應用程序的最佳實踐
我有我認爲是一個相當簡單的Web應用程序。它包含幾個引用了幾個java bean的jsps,以及通常的靜態html,js,css和圖像。
決定1)我想要一個清晰而乾淨的釋放程序,以便我可以在本地機器上開發,然後可靠地釋放到生產機器上。因此,我決定將應用程序打包成一個war文件(包括所有的靜態資源),以最大限度地減少我需要發佈的單獨部分。到現在爲止還挺好?
決定2)我想讓本地機器上的東西與生產環境儘可能相似。所以在我的html中,例如,我可能會引用一個靜態文件,如http://static.foo.com/file。爲了使這段代碼能夠無縫工作在dev和prod上,我決定在本地開發時將static.foo.com放在我的/ etc/hosts中,這樣所有的url都可以正常工作而不會改變任何東西。
決定3)我決定使用eclipse和maven爲我提供管理和構建項目的最佳實踐環境。
所以我有一個很好的緊張,現在成立了,但是:
每次我想在發展中改變什麼,像在一個HTML文件中的一行,我要重建整個項目,然後等待tomcat加載戰爭之前,我可以看到它是我想要的。所以我的問題是:
1)有沒有辦法連接eclipse和tomcat,這樣我就不必每次都重建戰爭了?即,tomcat直視我的實際工作區來提供靜態文件?
2)我想我可能會通過使用/ etc/hosts來反映生產url - 是否有更好的方式,不涉及手動更改url(相對URL當然是好的,但在哪裏你有很多子域,比如一個用於靜態文件,一個用於動態,你必須寫出完整的路徑,當然?)
3)這是否是最佳實踐?人們如何進行設置,以便平衡一個自動化,全面構建過程的需求,以及快速和靈活地快速開發javascript和html和css的速度,就像剛剛指出的那樣快apache在目錄和開發生活?人們找到什麼作品?
非常感謝!
編輯:謝謝你的迴應!如果我可以標記他們,我會..這真的幫了我。我所聽到的是,最佳實踐是在開發中保存webapp的結構,並在儘可能接近生產環境的情況下運行它。似乎人們之間的差異在於人們準備將資源熱部署到servlet容器中的程度,從而繞過構建過程以獲得一點額外的速度或便利。這就說得通了。再次感謝。
謝謝Whaley。所以我很清楚 - 你是否確認,即使我想說,在JavaScript中放入一個快速警報,或者在HTML文件中糾正某些文本中的錯字,我需要等待戰爭到重建,然後部署(即使自動)到我的開發servlet容器中,然後才能看到我的更改結果?如果是這樣,那麼與僅僅在項目文件中指出正確內容的效率相比,這種感覺非常高興。我理解正確嗎,還是我錯過了什麼? – Jeremy 2010-05-13 01:42:44
這正是我所建議的。如果您的生產部署由.war丟棄組成,那麼您的開發部署應該也是這樣。 Java webapps被打包和部署爲戰爭 - 當你不試圖解決這個約定時,我發現生活總是容易得多。 – whaley 2010-05-13 02:13:34
使用Eclipse的webtools/EE版本,您可以將項目與本地tomcat(或其他容器)安裝「鏈接」,因此您可以預覽小的更改而無需等待戰爭生成/部署。 – agnul 2011-03-08 16:24:00