目錄
1 Jenkins 概述
2 持續集成
3 JavaEE 專案部署方式對比
4 Jenkins + Git 持續集成環境搭建
1 Jenkins 概述
Jenkins 是一個開源軟體專案,是基于Java開發的一種可拓展持續集成工具,主要用于持續、自動地構建 / 測驗 / 集成軟體專案以及監控一些定時執行的任務
Jenkins擁有的特性包括:
易于安裝,只要把 jenkins.war 部署到 Tomcat 即可運行
易于配置,所有配置都是通過其提供的 web 界面實作
集成 RSS/E-mail,通過 RSS 發布構建結果或當構建完成時通過 e-mail 通知
生成 JUnit / TestNG 測驗報告
分布式構建,支持 Jenkins 能夠讓多臺計算機一起構建/測驗
檔案識別,Jenkins 能夠跟蹤哪次構建生成哪些 jar,哪次構建使用哪個版本的 jar 等
插件支持,支持擴展插件,你可以開發適合自己團隊使用的工具
2 持續集成
持續集成(Continuous integration)是一種軟體開發實踐,即團隊開發成員經常集成他們的作業,通過每個成員每天至少集成一次,也就意味著每天可能會發生多次集成,每次集成都通過自動化的構建(包括編譯,發布,自動化測驗)來驗證,從而盡快地發現集成錯誤,一個標準的持續集成系統能做到
軟體構建自動化:配置完成后,CI 系統會依照預先制定的時間表或者針對某一特定事件,對目標軟體進行構建
構建可持續的自動化檢查:CI 系統能持續地獲取新增或修改后嵌入的源代碼,也就是說,當軟體開發團隊需要周期性的檢查新增或修改后的代碼時,CI 系統會不斷確認這些新代碼是否破壞了原有軟體的成功構建,這減少了開發者們在檢查彼此相互依存的代碼中變化情況需要花費的時間和精力
構建可持續的自動化測驗:構建檢查的擴展部分,構建后執行預先制定的一套測驗規則,完成后觸發通知(Email,RSS等等)給相關的當事人
生成后后續程序的自動化:當自動化檢查和測驗成功完成,軟體構建的周期中可能也需要一些額外的任務,諸如生成檔案、打包軟體、部署構件到一個運行環境或者軟體倉庫,這樣,構件才能更迅速地提供給用戶使用,
部署一個 CI 系統需要的最低要求是,一個可獲取的源代碼的倉庫,一個包含構建腳本的專案,下圖概括了CI系統的基本結構:

該系統的各個組成部分是按如下順序來發揮作用的:
1、開發者檢入代碼到源代碼倉庫
2、CI 系統會為每一個專案創建了一個單獨的作業區,當預設或請求一次新的構建時,它將把源代碼倉庫的原始碼存放到對應的作業區
3、CI 系統會在對應的作業區內執行構建程序
4、(配置如果存在)構建完成后,CI 系統會在一個新的構件中執行定義的一套測驗, 完成后觸發通知(Email,RSS 等等)給相關的當事人
5、(配置如果存在)如果構建成功,這個構件會被打包并轉移到一個部署目標(如服務器)或存盤為軟體倉庫中的一個新版本,軟體倉庫可以是 CI 系統的一部分,也可以是一個外部的倉庫,諸如一個檔案服務器或者像 Java.net、?SourceForge 之類的網站
6、CI 系統通常會根據請求發起相應的操作,諸如即時構建、生成報告,或者檢索一些構建好的構件
而 Jenkins 就是這樣一個 CI 系統
3 JavaEE 專案部署方式對比
手動部署

自動部署
“自動化” 的具體體現:向版本庫提交新的代碼后,應用服務器上自動部署,用戶或測驗人員使用的馬上就是最新的應用程式

搭建上述持續集成環境可以把整個構建、部署程序自動化,很大程度上減輕作業量,對于程式員的日常開發來說不會造成任何額外負擔——自己把代碼提交上去之后,服務器上運行的馬上就是最新版本——一切都發生在無形中
4 Jenkins + Git 持續集成環境搭建
4.1 系統結構總述
創建虛擬機安裝 Linux 系統(這里用的 Ubuntu 16.04 64位)
版本控制子系統
GitHub 服務器
專案對應版本庫
版本庫中鉤子程式
持續集成子系統
JDK
Tomcat
Maven
Jenkins
主體程式
Maven 插件
Deploy to Web Container 插件
4.2 測驗專案 與 版本控制子系統
使用 IDEA 創建一個 基于 Maven 的 JavaWeb 專案并上傳到 GitHub 中
至于怎么創建專案和上傳到 GitHub 這里就不一 一贅述了,下面給出參考
IDEA + Maven + JavaWeb專案搭建
【Git 常見命令】玩轉 Git ——分布式版本控制系統
4.3 應用發布子系統
即創建一個 Linux 虛擬機,并安裝好 jdk、maven、git 、Tomcat,這里也不一 一贅述了,下面給出參考
Ubuntu 16.04安裝JDK8
Ubuntu下Maven安裝和使用
ubuntu 16.04 安裝git的方法
ubuntu16 tomcat7安裝和編碼修改
tomcat7配置管理員帳號密碼
4.4 Jenkins 主體程式安裝配置
首先 下載 Jenkins ,將 jenkins.war 放在 Tomcat 的解壓目錄下的 /webapps 目錄下
啟動 Tomcat 并訪問 http://虛擬機IP:8080/jenkins

依照網頁上的提示填入檔案內容(也是 admin 的密碼),點繼續

選擇【安裝推薦的插件】

如果某些插件安裝失敗,重試即可,接著可以新建賬號或者以管理員身份繼續,這里新建一個管理員賬號

開始使用 Jenkins !

4.5 系統初始化設定
點擊左側【系統管理-全域安全配置】

點擊左側【系統管理-全域工具配置】,設定 Maven 的 settings.xml 的默認路徑和全域默認路徑,JDK 的別名和環境變數 JAVA_HOME (注意去掉自動安裝的勾選),Git 的別名和 Git 的可執行檔案路徑(注意去掉自動安裝的勾選)

繼續在全域工具配置頁面,配置 Maven 的路徑,最后點擊【保存】(如果有 Gradle / Docker 的可以繼續配置)

4.6 安裝插件
點擊【管理插件】,然后選擇【可選插件】,找到【Deploy to container】,選擇【直接安裝】

4.7 創建工程
1、點擊【新建任務】,輸入專案名稱,選擇【構建一個自由風格的軟體專案】,最后點【確定】

2、確定之后來到專案設定頁面,點擊【原始碼管理】,選擇 【Git】,首先填入倉庫的 URL ,然后點擊 【Add】,選擇【jenkins】,添加 GitHub 的賬號密碼,然后選擇你所添加的 GitHub 的【憑證】
PS:這里指定的倉庫地址是要定位到【pom.xml】檔案所在的檔案夾,因為 Jenkins 就是到專案根目錄下查找【pom.xml】的


3、點擊專案設定頁面中的【構建】,選擇【Invoke top-level Maven targets】

然后選擇指定 Maven 的版本,最后在【Goals】中指定執行的 Maven 構建命令

4、點擊專案設定頁面中的【構建后操作】,選擇【Deploy war/ear to a container】

在【WAR/EAR files】中填入 war 包以專案根目錄為基準的相對路徑,然后【Context path】中填入瀏覽器訪問專案時使用的專案名,然后點擊【Add Container】指定一個容器,并添加 Tomcat 的登錄憑證,指定 Tomcat URL

最后點擊【保存】
5、保存之后來到了專案界面,目前不能點作業區,因為里面沒有檔案,我們先點【立即構建】生成作業區


PS:在 jenkins 中,其使用天氣狀況來表示構建成功率

6、點擊專案中的【配置-構建觸發器】

遠程觸發的基本原理是 Git 服務器給 Jenkins 專案特定的 URL 地址發送請求, 但必須以請求引數的形式攜帶一個特定值,這個特定值就是這里的 “身份驗證令牌”
假設
我們這個專案的地址觸發地址是
http://192.168.70.131:8080/ jenkins/job/HelloWorld/build
身份驗證令牌是
CLOUD_TOKEN
那么最終的訪問地址就是:http://192.168.70.131:8080/jenkins/job/ HelloWorld/build?token = CLOUD_TOKEN
觸發訪問地址中 Jenkins 訪問地址是根據實際情況改變的,專案名稱根據實際 情況改變, 其他都不變
4.8 編輯 Git 版本庫鉤子程式


感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接免費拿走:
① 2000多本軟體測驗電子書(主流和經典的書籍應該都有了)
② 軟體測驗/自動化測驗標準庫資料(最全中文版)
③ 專案原始碼(四五十個有趣且經典的練手專案及原始碼)
④ Python編程語言、API介面自動化測驗、web自動化測驗、App自動化測驗(適合小白學習)


⑤ Python學習路線圖(告別不入流的學習)
上圖的資料 在我的QQ技術交流群里(技術交流和資源共享,廣告進來腿給你打斷)
可以自助拿走,群號953306497(備注“csdn111”)群里的免費資料都是筆者十多年測驗生涯的精華,還有同行大神一起交流技術哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413670.html
標籤:其他
上一篇:OS-簡介
下一篇:Linux學習筆記(一)
