一、什么是Jenkins?
??Jenkins是一個開源軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。它是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,功能包括:
持續(xù)的軟件版本發(fā)布/測試項目。
監(jiān)控外部調(diào)用執(zhí)行的工作
二、什么是持續(xù)集成(CI)?
??持續(xù)集成 是一個開發(fā)的實踐,需要開發(fā)人員定期集成代碼到共享存儲庫。持續(xù)集成強調(diào)開發(fā)人員提交了新代碼之后,立刻進行構(gòu)建、(單元)測試。根據(jù)測試結(jié)果,我們可以確定新代碼和原有代碼能否正確地集成在一起。
??持續(xù)交付(CD) 是在持續(xù)集成的基礎上,將集成后的代碼部署到更貼近真實運行環(huán)境中。比如,我們完成單元測試后,可以把代碼部署到模擬環(huán)境中進行更多的測試。如果代碼沒有問題,可以繼續(xù)手動部署到生產(chǎn)環(huán)境。
三、Jenkins特性
易于安裝,只需要執(zhí)行
Java -jar jenkins.war,或者部署到servlet容器中,例如tomcat的。不需要數(shù)據(jù)的支持;易于配置,所有的配置都是通過其提供的
web界面實現(xiàn),且配置頁面支持配置項的錯誤檢查和很好的在線幫助;集成
RSS/EMail/IM同通過RSS發(fā)布構(gòu)建結(jié)果或當構(gòu)建完成時通過e-mail通知;生成
Junit/TestNG測試報告,能夠很好地顯示各種測試的報告,且可以生成失敗的趨向圖;分布式構(gòu)建支持
Jenkins能夠讓多臺計算機一起構(gòu)建/測試;文件標識,
Jenkins可以標識build(構(gòu)建)產(chǎn)生的文件,例如jars。插件支持:Jenkins可以通過第三方的插件來擴展。
可讀的永久的鏈接生成,
jenkins對于大部分pages都生成清楚的可讀的永久的鏈接。跨平臺,支持幾乎所有的平臺,例如
Windows,Ubuntu/Debian,Red Hat/CentOS,Mac等。
四、Jenkins能幫我們做什么
軟件構(gòu)建自動化: 配置完成后,CI系統(tǒng)會依照預先制定的時間表,或者針對某一特定事件,對目標軟件進行構(gòu)建。
構(gòu)建可持續(xù)的自動化檢查:CI 系統(tǒng)能持續(xù)地獲取新增或修改后簽入的源代碼,也就是說,當軟件開發(fā)團隊需要周期性的檢查新增或修改后的代碼時,CI 系統(tǒng)會不斷確認這些新代碼是否破壞了原有軟件的成功構(gòu)建。這減少了開發(fā)者們在檢查彼此相互依存的代碼中變化情況需要花費的時間和精力。 l
構(gòu)建可持續(xù)的自動化測試:構(gòu)建檢查的擴展部分,構(gòu)建后執(zhí)行預先制定的一套測試規(guī)則,完成后觸發(fā)通知(Email,RSS 等等)給相關的當事人。
生成后后續(xù)過程的自動化 :當自動化檢查和測試成功完成,軟件構(gòu)建的周期中可能也需要一些額外的任務,諸如生成文檔、打包軟件、部署構(gòu)件到一個運行環(huán)境或者軟件倉庫。這樣,構(gòu)件才能更迅速地提供給用戶使用。
五、持續(xù)集成(CI)系統(tǒng)的基本結(jié)構(gòu)
??部署一個 CI 系統(tǒng)需要的最低要求是,一個可獲取的源代碼的倉庫,一個包含構(gòu)建腳本的項目。
該系統(tǒng)的各個組成部分是按如下順序來發(fā)揮作用的:
開發(fā)者檢入代碼到源代碼倉庫。
CI 系統(tǒng)會為每一個項目創(chuàng)建了一個單獨的工作區(qū)。當預設或請求一次新的構(gòu)建時,它將把源代碼倉庫的源碼存放到對應的工作區(qū)。
CI 系統(tǒng)會在對應的工作區(qū)內(nèi)執(zhí)行構(gòu)建過程。
(配置如果存在)構(gòu)建完成后,CI 系統(tǒng)會在一個新的構(gòu)件中執(zhí)行定義的一套測試。完成后觸發(fā)通知(Email,RSS 等等)給相關的當事人。
(配置如果存在)如果構(gòu)建成功,這個構(gòu)件會被打包并轉(zhuǎn)移到一個部署目標(如應用服務器)或存儲為軟件倉庫中的一個新版本。軟件倉庫可以是 CI 系統(tǒng)的一部分,也可以是一個外部的倉庫,諸如一個文件服務器或者像 Java.net、 SourceForge 之類的網(wǎng)站。
CI 系統(tǒng)通常會根據(jù)請求發(fā)起相應的操作,諸如即時構(gòu)建、生成報告,或者檢索一些構(gòu)建好的構(gòu)件。
六、優(yōu)點
Jenkins一切配置都可以在 web 界面上完成。有些配置如 MAVEN_HOME Email,只需要配置一次,所有的項目就都能用。當然也可以通過修改 XML 進行配置。支持
Maven的模塊(Module),Jenkins對Maven做了優(yōu)化,因此它能自動識別Module,每個Module可以配置成一個job。相當靈活。測試報告聚合,所有模塊的測試報告都被聚合在一起,結(jié)果一目了然,使用其他
CI,這幾乎是件不可能完成的任務。構(gòu)件指紋(
artifact fingerprint),每次build的結(jié)果構(gòu)件都被很好的自動管理,無需任何配置就可以方便的瀏覽下載。
七、Jenkins安裝描述
下載 Jenkins.
打開終端進入到下載目錄.
運行命令 java -jar jenkins.war --httpPort=8080.
打開瀏覽器進入鏈接 http://localhost:8080.
按照說明完成安裝.
安裝完成后,開始將Jenkins運行并創(chuàng)建Pipeline。
??Jenkins Pipeline(或簡稱為 "Pipeline")是一套插件,將持續(xù)交付的實現(xiàn)和實施集成到 Jenkins 中。
??Pipeline提供了一組可擴展的工具,用于將“復制代碼”作為代碼進行建模。
??Jenkinsfile 是一個包含Jenkins Pipeline定義的文本文件,并被檢入源代碼控制。這是“Pipeline代碼”的基礎; 處理連續(xù)輸送Pipeline的一部分應用程序,以像其他代碼一樣進行版本檢查。創(chuàng)建Jenkinsfile提供了一些直接的好處:
自動創(chuàng)建所有分支和拉請求的Pipeline
Pipeline上的代碼審查/迭代
Pipeline的審計跟蹤
Pipeline的唯一真實來源 ,可以由項目的多個成員查看和編輯。
八、環(huán)境準備
JDK:1.8
Centos:7.3
maven 3.5
1、安裝jdk請移步這里
2、安裝maven
通過命令下載
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
或者通過百度云下載
鏈接:https://pan.baidu.com/s/1zPM__BgDLk35khLal3_n5Q
提取碼:62fy
//解壓
tar vxf apache-maven-3.5.0-bin.tar.gz
//移動
mv apache-maven-3.5.0 /usr/local/apache-maven-3.5.0
//修改環(huán)境變量
在/etc/profile中添加以下幾行
MAVEN_HOME=/usr/local/apache-maven-3.5.0
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
執(zhí)行source /etc/profile使環(huán)境變量生效。
?最后運行mvn -v驗證maven是否安裝成功

3、配置防護墻
#關閉防護墻
#centos7
systemctl stop firewalld.service
#以下為:centOS 6.5關閉防火墻步驟
#關閉命令:
service iptables stop
#永久關閉防火墻:
chkconfig iptables off
#兩個命令同時運行,運行完成后查看防火墻關閉狀態(tài)
service iptables status
九、小結(jié)
??本篇文章我們簡單了介紹了Jenkins,相信我們對此有了初步了解,下一篇繼續(xù)探討Jenkins部署SpringBoot。