久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Jenkins持續(xù)集成詳細教程

Jenkins持續(xù)集成詳細教程

來源:千鋒教育
發(fā)布人:qyf
時間: 2022-06-02 18:46:00 1654166760

  一:什么是Jeckins?

  Jenkins是一個可擴展的持續(xù)集成引擎。

  持續(xù)集成,就是通常所說的CI(Continues Integration),可以說是現(xiàn)代軟件技術(shù)開發(fā)的基礎(chǔ)。

  持續(xù)集成是一種軟件開發(fā)實踐,即團隊開發(fā)成員經(jīng)常集成他們的工作,通常每個成員至少集成一次,也意味著每天可能會發(fā)生多次集成。

  每次集成都通過自動化的構(gòu)建(包括編譯,發(fā)布,自動化測試)來驗證,從而盡快地發(fā)現(xiàn)集成錯誤。許多團隊發(fā)現(xiàn)這個過程可以大大減少集成的問題,讓團隊能夠更快的開發(fā)內(nèi)聚的軟件。

  Jenkins作用:

  1、持續(xù)、自動地構(gòu)建、測試軟件項目。

  2、監(jiān)控一些定時執(zhí)行的任務(wù)。

  Jenkins的目的:

  Jenkins 主要是監(jiān)控軟件開發(fā)流程,快速顯示問題。所以能保證開發(fā)人員以及相關(guān)人員省時省力提高開發(fā)效率。

  CI系統(tǒng)在整個開發(fā)過程中的主要作用是控制:當(dāng)系統(tǒng)在代碼存儲庫中探測到修改時,它將運行構(gòu)建的任務(wù)委托給構(gòu)建過程本身。如果構(gòu)建失敗了,那么CI系統(tǒng)將通知相關(guān)人員,然后繼續(xù)監(jiān)視存儲庫。它的角色看起來是被動的;但它確能快速反映問題

  二:Jenkins架構(gòu)

圖片72


  在上面這個分布式的構(gòu)建環(huán)境中,Jenkins master主要負責(zé)如下:

  接收構(gòu)建觸發(fā)(比如,一個提交到GitHub后)

  發(fā)送通知(比如,在構(gòu)建失敗后,發(fā)送email或者HipChat消息)

  處理HTTP請求(和客戶端進行交互)

  管理構(gòu)建環(huán)境(在slave編排工作執(zhí)行)

  由于master和slave負責(zé)不相同的,所以他們請求不同的環(huán)境。

  Master: 往往是專用的主機,項目從小到大需要內(nèi)存200 MB--- 70 GB.

  Slave: 沒有特別的要求,它應(yīng)該能夠執(zhí)行單一的構(gòu)建。比如:這個項目比較大的話,請求100GB的內(nèi)存,那么該slave主機應(yīng)該滿足項目的要求。

  三:Jenkins的安裝和部署

  jenkins官網(wǎng)下載地址:https://jenkins.io/download/ 目前版本:2.277.4

  jenkins項目有兩條發(fā)布線,分別是LTS長期支持版(或穩(wěn)定版)和每周更新版(最新版)。建議選擇LTS長期支持版,下載通用java項目war包。

  下載jdk1.8以上版本并安裝,安裝后配置jdk的環(huán)境變量。

  在dos命令行運行命令解壓war包:java -jar jenkins.war (默認情況下端口是8080.如果要使用其他端口啟動,可以通過命令行”java –jar Jenkins.war --httpPort=80”的方式修改)

  運行命令后jenkins.war會自動在C盤目錄下生成一個jenkins的文件夾。C盤下的這個文件夾可獨立運行。

  在瀏覽器中訪問jenkins項目:http://localhost:8080/jenkins 出現(xiàn)解鎖 Jenkins界面,說明jenkins項目搭建完成,這里需要輸入管理員密碼。

  管理員密碼在:C:\jenkins\secrets\initialAdminPassword 打開此文件獲得密碼并輸入密碼,點擊”繼續(xù)”

  點擊:【選擇插件來安裝】按鈕,出現(xiàn)如下默認插件安裝界面。

  這個頁面會默認選中安裝一些插件,直接點擊”安裝”按鈕,安裝所有推薦的插件。

  等待所有插件安裝完成(耐心等待1-2個小時)。安裝插件的時候,會有一些插件安裝失敗(如上圖的X),這些插件的安裝是有前置條件的,等安裝結(jié)束后,按右下角“重試”,繼續(xù)安裝,之前失敗的插件就都能安裝了。安裝完成后,點擊“繼續(xù)”按鈕,

  輸入用戶名:admin,密碼:123456.確認密碼:123456.全名:admin,電子郵件地址后點“保存并完成”按鈕

  點擊“保存并完成”出現(xiàn)下圖表示jenkins已經(jīng)配置完成。點擊[開始使用jenkins]登錄。

  四:jenkins持續(xù)集成

  1:全局配置

  成功初始化后接下來需要做一些相應(yīng)的全局的工具配置,點擊首頁左邊菜單的Manage Jenkins,然后再點擊Global Tool Configuration選項。

圖片73

  在以下的頁面中設(shè)置好Maven、JDK、Git的相關(guān)配置信息。需要注意的是,在JDK配置中取消勾選Install automatically,也就是不自動下載jdk,而是手動指定JAVA_HOME的路徑。

圖片74

  在下面Maven安裝的選項中指定Maven的安裝路徑

圖片75

  2. 創(chuàng)建任務(wù)

  點擊首頁的新建Item或者創(chuàng)建一個新任務(wù)。

圖片88

  在跳轉(zhuǎn)的頁面中輸入任務(wù)名稱(這里創(chuàng)建一個helloworld任務(wù)用于演示)。然后選擇自由風(fēng)格的的任務(wù),最后點解確定按鈕。

圖片76

  3. 配置任務(wù)

  在創(chuàng)建好任務(wù)之后,會來到任務(wù)的配置頁面,下面將演示如何對任務(wù)進行一些常規(guī)的配置。

  General配置

圖片77

  描述:填寫構(gòu)建的描述信息。

  Discard old builds:勾選,表示丟棄就的構(gòu)建,并填寫丟棄策略的保持構(gòu)建天數(shù)和保持構(gòu)建的最大個數(shù)。

  GitHub項目:勾選,填寫github的項目地址。

  源碼管理

圖片78

  源碼管理可選擇git或svn。由于案例是托管在github上,因此這里選擇Git,需要注意的是,如果使用ssh加密通信,需要在本地使用ssh-keygen生成秘鑰對,然后將私鑰配置到j(luò)enkins,把公鑰配置到github上。

  點擊添加按鈕

圖片79

  在彈出的子窗口中,類型選擇SSH Username with private key,然后填寫Username(隨意),勾選Enter directly,在Key的文本域中加入私有key的秘鑰串,然后點擊最下面的添加。

圖片80

  構(gòu)建環(huán)境

  構(gòu)建環(huán)境中勾選Delete workspace before build starts(開始構(gòu)建之前刪除工作空間)

圖片81

  構(gòu)建

  在構(gòu)建這一項中選擇構(gòu)建步驟,由于案例是一個Maven項目,因此這里選擇使用Maven來進行構(gòu)建。點擊添加構(gòu)建步驟,在下拉菜單中選擇Invoke top-level Maven targets。

圖片82

  然后選擇maven版本,目標(biāo)出填寫Maven聲明周期命令,這里設(shè)置為執(zhí)行清理后進行打包,并忽略單元測試。

圖片83

  自動部署

  前面的配置已經(jīng)基本完成了項目的自動構(gòu)建,通常在構(gòu)建完之后需要將項目進行部署,那么同樣可以讓Jenkins來完成項目的自動部署。在自動部署的時候,應(yīng)先停止原有的應(yīng)用進程然后重新啟動,這些操作可以使用shell腳本來完成。

  在構(gòu)建的選項中再次點擊增加構(gòu)建步驟,選擇Execute shell

圖片84

  在命令中添加sheel腳本

  # #!/bin/bash表示使用系統(tǒng)的bash

  #!/bin/bash

  echo"Restart SpringBootApplication..."

  # 獲取demo.jar的后臺進程id,并賦值給變量pid

  # ps用于顯示進程信息的命令,-ef參數(shù)表示顯示所有進程和全部格式

  # “|”是一個管道符號,表示ps和grep命令同時執(zhí)行

  # grep是linux的一個文本搜索工具

  # grep demo.jar表示查找內(nèi)容包含demo.jar的進程信息

  # grep -v grep表示反向查找,查找不包含grep的內(nèi)容的進程信息(也就是進行一次過濾)

  # awk是一個強大的文本分析工具,分析并生成報告。'{print $2}'表示打印出第二個字段

  pid=`ps -ef | grep demo.jar | grep -v grep | awk '{print $2}'`

  # 如果pid不為“”,則kill掉該進程

  if[-n"$pid"]

  then

  kill-9$pid

  fi

  # Jenkins默認會在Build結(jié)束后Kill掉所有的衍生進程,

  # BUILD_ID=DONTKILLME就是防止jenkins殺掉衍生的子進程

  BUILD_ID=DONTKILLME

  # 后臺啟動demo.jar,2>&1表示將標(biāo)準(zhǔn)出錯也輸出到springboot.log文件中,最后一個&表示該命令在后臺執(zhí)行

  nohup java-jar/root/.jenkins/workspace/helloworld/target/demo.jar > /root/springboot.log2>&1 &

  最后點擊應(yīng)用并保存,此時任務(wù)的配置就基本完成。

  4. 執(zhí)行任務(wù)

  回到首頁,在任務(wù)列表中可以看到剛配置好的任務(wù),點擊任務(wù)名稱旁邊的下拉箭頭,選擇Build Now開始執(zhí)行任務(wù)。

圖片85

  此時在左下角的構(gòu)建執(zhí)行狀態(tài)中會有一個helloworld任務(wù)執(zhí)行的進度條。

圖片86

  旁邊的#1表示第幾次構(gòu)建,如果執(zhí)行完后再次點擊Build Now,那么又會產(chǎn)生一條新的構(gòu)建記錄為#2.可以點擊#1進去查控制臺輸出任務(wù)執(zhí)行日志。

圖片87

  最后,當(dāng)任務(wù)正確執(zhí)行完后,我們就可以正常訪問項目。以后每當(dāng)我們有新的版本提交到github,那么只需要在任務(wù)列表中點擊Build Now來執(zhí)行構(gòu)建任務(wù)。那么jenkins會自動從github上拉取最新的版本,接著使用Maven將項目進行編譯打包等操作,然后通過shell腳本自動部署項目。

  更多關(guān)于軟件測試培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
抖音小店照片要求尺寸多大

在抖音平臺開設(shè)小店已經(jīng)成為了越來越多人的選擇,相信大家已經(jīng)在各大社交平臺上看到有不少小店的推廣。在抖音上,照片是展示產(chǎn)品的重要手段,因...詳情>>

2023-10-08 16:14:25
抖音招商團長托管服務(wù)費怎么退回來

抖音招商團長托管服務(wù)是抖音為有意愿創(chuàng)作內(nèi)容并帶動其他創(chuàng)作者成為團隊成員的用戶提供的一種服務(wù)。通過該服務(wù),招商團長可以自主組建團隊并得到...詳情>>

2023-10-08 16:08:53
抖音小店怎么做代銷

抖音已經(jīng)成為了一個非常受歡迎的短視頻應(yīng)用程序,在其中許多用戶都精心打造了自己的小店,用于銷售各種各樣的商品,獲取額外的收入。然而,要想...詳情>>

2023-10-08 15:28:41
怎樣開抖音小店帶貨賺錢

隨著直播帶貨的火熱,越來越多的人開始嘗試通過抖音小店來開展帶貨業(yè)務(wù)。抖音小店是抖音直播帶貨的配套,可以讓用戶在購買直播中產(chǎn)品時就實現(xiàn)購...詳情>>

2023-10-08 15:06:36
能不能幫我打開抖音小店店鋪呢怎么弄

抖音小店是近年來非?;鸨囊粋€網(wǎng)絡(luò)業(yè)務(wù),也是提供了很多商業(yè)機會的平臺。對于一個創(chuàng)業(yè)者而言,開設(shè)抖音小店是一個不錯的選擇。但是,許多小店...詳情>>

2023-10-08 15:01:21