以前對Jenkins管理SVN源碼的邏輯不太清楚,簡單研究了一下。對於通常的開發一般會有如下三個環境:web
一、svn服務器shell
二、Jenkins服務器服務器
三、開發服務器(部署測試版web應用或者其餘應用)ssh
固然以上三者也能夠在同一個服務器上,只是不一樣的工做目錄maven
簡要闡述一下Jenkins的工做原理:svn
a,首先更新svn上面的源代碼或其餘文件到Jenkins指定的工做區間測試
b,在Jenkins工做區作必定的加工,例如:簡單的打包(mvn打包)或壓縮文件。server
c,將目標產物部署到開發或者生產服務器。一般的作法是遠程ssh目標服務器,上傳產物(war包或者其餘文件),遠程啓動服務。blog
對於maven項目來講,這一步爲打包,以下圖:開發
Source files:表明當前Jenkins工做目錄步驟b處理好的產物
Remove prefix:字面意思就是移除目錄前綴,好比:jenkins中目標產物的全路徑是biz-web/target/*.war,可是隻想把war拷貝過去,這個時候Remove prefix就填biz-web/target
Remote directory:是相對於ssh目錄的,若是不存在則會在遠程服務器相對於ssh根目錄建立改目錄。
Exec command:就是在遠程server在執行的命令,好比啓動web服務,咱們這裏有一個用法按期執行服務器上的集計job(由shell調用kettle執行job)