[英]What is the best way to use GIT for versioning Java Website
我的Unix中安裝了一個git repo,用於跟蹤我們的Java EE網站的版本。
我目前遇到的問題不是git的用法,而是我想使用它的方式,下面將對此進行說明。
我以一個由3個開發人員組成的團隊工作,他們為網站開發做出了貢獻。
最初,當我在服務器中安裝Git時,我直接創建了webapps目錄的存儲庫,其中包含實際的工作文件,並遇到了問題。
1)雖然將更改提交到倉庫中,但我們當中的一個通常會執行git add .
並將其提交到存儲庫中,該存儲庫不僅將提交提交者更改的文件,而且還將提交其他開發人員的更改。
當我們面對這個問題時,我們決定需要在同一服務器的不同目錄中為我們每個人創建單獨的非裸倉庫,以存放整個代碼。我們遵循的基本工作結構如下:
如上圖所示,我們創建了一個裸倉庫,其中的網站內容由webapp推送,該webapp在圖中為Work Directory。
這里的基本工作流程是:
1)為每個開發人員創建n個非裸倉庫。
2)從該裸倉庫中提取整個網站工作文件
3)更改我們自己的倉庫后,推送到裸倉庫
4)配置有接收后掛鈎的裸倉庫實際上將更新工作目錄。
此設置運行良好,但我們面臨許多問題,如下所示:
1)每個開發人員在單獨的目錄中都有自己的競爭者,無法在將代碼推送到裸倉庫之前對其進行測試,這將更新Work Directory- Coz的這些步驟,即使說一個jsp文件更改我最終要進行20次提交直到它開始正常運行而沒有錯誤為止,因為我們tomcat僅指向原始工作目錄。
這已成為這里最麻煩的問題。
該策略解決了以前存在的沖突問題,但在測試代碼方面甚至產生了更大的問題。
在外出項目中使用GIT似乎有益的情況下,我們如何改善這種情況。
任何人都可以提出任何改進方法的建議。
也許這樣的策略可能行得通? 我在一個小型團隊中使用過類似的策略,它對我們來說效果很好:
更新了有關每個開發人員如何運行webapp的一些想法:
我可以想到幾種方法來實現上述第三個要點:
使用單個安裝的tomcat。 創建多個上下文,每個開發人員一個。
例如,對於developer1,在tomcat_home / conf / catalina / localhost下創建一個名為dev1.xml的上下文文件,其內容類似於:
?xml version =“ 1.0” encoding =“ UTF-8”?>上下文路徑=“ / dev1” docBase =“ / home / developer1 / wars / your-webapp-1.0.war” unpackWAR =“ false” />
(請注意,我刪除了第一個“ <”,因此xml將出現在帖子中)
使用碼頭通過命令行進行戰爭,例如:
java -jar jetty-runner.jar your-webapp-1.0.war
使用由ant或maven之類的構建工具提供的機制來運行和測試Webapp。 例如,在maven中,您可以使用jetty插件通過mvn jetty:run
來運行Web應用程序,甚至可以將其配置為啟動Web服務器並在每次構建項目時運行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.