簡體   English   中英

使用GIT進行Java網站版本控制的最佳方法是什么

[英]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似乎有益的情況下,我們如何改善這種情況。

任何人都可以提出任何改進方法的建議。

也許這樣的策略可能行得通? 我在一個小型團隊中使用過類似的策略,它對我們來說效果很好:

  • 每個開發人員在進行任何更改之前都會創建一個分支。
  • 開發人員進行一些工作並提交到他們的分支
  • 如果可能的話,開發人員針對自己的目錄運行tomcat(或jetty或其他工具)進行測試。 Maven使這變得非常容易。
  • 在推銷之前,開發人員將分支機構與master相結合
  • 開發人員將分支推向裸倉庫
  • 然后,您(或負責最終批准的人)將分支合並為主分支。 如果開發人員正確地調整了基准,這應該是一個簡單的快速向前合並。

更新了有關每個開發人員如何運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM