背景
keywords:svn,trunk,branch,jenkins,maven,merge
兩地同時開發一個產品,目前線上有3個環境:測試環境、預發布環境、生產環境。目前系統部署采用jenkins自動化部署工具
用jenkins部署的方案
jenkins 測試環境:配置了各個分支的svn 地址;預發布和生產環境配置為主干的svn地址。jenkins部署的大致流程為:
- 根據配置的svn路徑
- 下載源碼
- maven打包
- copy到tomcat的webapps目錄
- 重啟tomcat
采取的版本控制方案如下圖,雖然圖看起來這么多彎彎曲曲的線,其實還是實施起來很簡單的
兩個原則
一:基於分支提測,預發布和生產基於主干進行發布
二:每次上線后,一定要及時通知其他分支及時從trunk merge到branch
war包部署方案
還有種部署方案:不基於源碼打包部署,而是打一個war包,然后根據環境自動替換配置文件。這種部署方案比較適合分布式部署
這種版本控制可以有細微變動:就是第四點,發布到線上后,發現存在bug,那么是從tag新建分支,修復后,可以直接從分支打包上生產。因為如果用jenkins自動部署工具,那么就需要保證取源碼的svn路徑不能發生改變。
如下圖: