因為公司用的是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 項目
有點事,后面再繼續寫,。。。。