1. 程式人生 > >jenkins+svn完整打包並上傳到linux伺服器上

jenkins+svn完整打包並上傳到linux伺服器上

因為公司用的是svn版本管理工具並且部署在了windows伺服器上,所以測試環使用jenkins需要部署兩套環境,

一套是在本地windows伺服器,jenkins從svn下載程式碼完成打包並上傳到linux跳板機上

一套是在linux環境上,把跳板機上的包上傳到對應伺服器上並備份以前版本,重啟新jar包

今天先講如何在windows環境上完成打包並上傳到linux伺服器上

步驟;

1、jenkins安裝好,配置好jdk.maven 環境,本身就有的可以自定義路徑的,沒有的可以再jenkins自行安裝,在jenkins系統設定的全域性工具配置中,

1.配置好maven 配置中的settings路徑,配置好maven設定,指定工作位置存放, settings.xml 設定 localRepository:(地址可以自定義,方便管理)   ,一

2.jdk路徑

3.maven路徑

 

2.系統設定-全域性工具設定配置好ssh

 

3.下載SSH Publishers外掛並安裝,這個工具是用來把打包的專案上傳到跳板機上
jenkins基礎資料搞好了,現在開始按照步驟開始打包並上傳
1.新建一個maven專案
2.原始碼管理選擇Subversion,正確填寫svn專案路徑和使用者名稱密碼
svn更新引數解釋
  • Use‘svn update’ as much as possible

    • 第一次釋出的時候,會把工作目錄下的所有檔案清空,然後check-out一份完整的專案到工作目錄下;

    • 以後更新的時候,不會判斷已有檔案是否在svn裡存在。比如工作目錄下的檔案123在svn裡不存在,那麼更新的時候不會刪除123。

    • 不會判斷工作目錄下的檔案是否被改動,只會判斷svn是否有新版本需要更新。比如工作目錄下的檔案zzz.txt內容為zzz,svn上的zzz.txt內容為空,如果svn上zzz.txt沒有新版本,則在更新的時候不會更新zzz.txt,也就是說如果手動修改了工作目錄下的檔案,如果此檔案在svn上沒有出現新版本,就不會更新。一旦svn上的zzz.txt有新版本後就會更新工作目錄的zzz.txt,這時工作目錄下會生成如下幾個檔案:zzz.txt、zzz.txt.mine、zzz.txt.r223、zzz.txt.r224,其中zzz.txt.r223為svn上老版本、zzz.txt.r224為svn上新版本、zzz.txt.mine為工作目錄上的zzz.txt的副本、zzz.txt記錄了檔案變化。

    • svn上刪除了檔案,更新的時候,工作目錄裡的此檔案也會被刪除。但是如上例中的zzz.txt手動修改過,已經和svn上的不一樣了,這時將不會被刪除。

  • Alwayscheck out a fresh copy

    • 第一次釋出的時候,會把工作目錄下的所有檔案清空,然後check-out一份完整的專案到工作目錄下;

    • 每一次更新的時候,都會先清除工作目錄下的所有檔案,然後重新check-out一份完整的專案到工作目錄下。

  • Emulateclean checkout by first deleting unversioned/ignored files,then ‘svn update’

    • 第一次釋出的時候,會把工作目錄下的所有檔案清空,然後check-out一份完整的專案到工作目錄下;

    • 以後更新的時候會判斷工作目錄下的檔案是否在svn裡存在,如果不存在則刪除,如果存在且有新版本則更新。

    • 會判斷工作目錄下的檔案是否被改動,不管有沒有新版本,都會還原為svn上的最新版本。

    • svn上刪除了檔案,更新的時候,工作目錄裡的此檔案也會被刪除。

  • Use‘svn update’ as much as possible,with ‘svn revert’ before update

    • 第一次釋出的時候,會把工作目錄下的所有檔案清空,然後check-out一份完整的專案到工作目錄下;

    • 以後更新的時候不會判斷工作目錄下的檔案是否在svn裡存在。

    • 會判斷工作目錄下的檔案是否被改動,不管有沒有新版本,都會還原為svn上的最新版本。

    • svn上刪除了檔案,更新的時候,工作目錄裡的此檔案也會被刪除。

 

 

 

 

3.構建觸發器選擇構建什麼樣的觸發,可以選擇手動,輪詢,定時構建

引數解釋

build whenever a snapshot dependency is built

當job依賴的快照版本被build時,執行本job。

build after other projects are built

當本job依賴的job被build時,執行本job

build periodically

隔一段時間build一次,不管版本庫程式碼是否發生變化。

poll scm

隔一段時間比較一次原始碼如果發生變更,那麼就build。否則,不進行build。

Poll SCM:定時檢查原始碼變更,如果有更新就checkout最新code下來,然後執行構建動作。

 如果沒有更新就不會執行構建

 

Build periodically:週期進行專案構建(原始碼是否發生變化沒有關係)

 

每15分鐘構建一次:H/15 * * * *   或*/5 * * * *

 

每天8點構建一次:0 8 * * *

每天8點~17點,兩小時構建一次:0 8-17/2 * * *

週一到週五,8點~17點,兩小時構建一次:0 8-17/2 * * 1-5

每月1號、15號各構建一次,除12月:H H 1,15 1-11 *

*/5 * * * * (每5分鐘檢查一次原始碼變化)

0 2 * * * (每天2:00 必須build一次原始碼)

4.構建環境

引數解釋

Delete workspace before build starts:預設刪除所有的,也可以設定刪除特定的檔案
- Patterns for files to be deleted:正則匹配刪除哪些檔案
- Apply pattern also on directories:規則是否也應用到資料夾
- Check parameter:是否刪除,是個bool值,true則刪除,false不刪除.為毛感覺這個有點雞肋
- External Deletion Command:執行外部刪除命令
Abort the build if it’s stuck:構建阻塞的時候,根據超時策略處理.
- Time-out strategy:超時策略,有絕對時間,相對時間,根據以前的構建時間判斷等
- Time-out variable:超時時間
- Time-out actions:超時後的處理,如終結,faile調或者寫描述
- Add timestamps to the Console Output:在輸出介面新增時間戳
- Use secret text(s) or file:使用密文,用於全域性性的管理密碼等,勾選後會在下方出現Binding,輸入需要的使用者名稱,密碼證書等就可以了


5.Pre Steps  bulid執行之前的操作,可以再這裡設定引數,沒什麼特殊需要的話,一般不需要填寫,使用預設設定就即可

6.bulid 專案

 

有點事,後面再繼續寫,。。。。