日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

持续集成工具Jenkins_尚硅谷视频学习笔记

發布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 持续集成工具Jenkins_尚硅谷视频学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 持續集成工具 Jenkins
  • 1 從裝修廚房看項目開發效率優化
    • 1.1 持續部署
    • 1.2 持續集成
    • 1.3 持續交付
    • 1.4 總體目標
  • 2 持續集成工具
    • 2.1 Jenkins 和 Hudson
    • 2.2 技術組合
  • 3 JavaEE 項目部署方式對比
    • 3.1 手動部署
    • 3.2 自動化部署
  • 4 Jenkins+SVN 持續集成環境搭建
    • 4.1 系統結構總述
    • 4.2 版本控制子系統
    • 4.3 應用發布子系統
    • 4.4 Jenkins 主體程序安裝配置
    • 4.5 系統初始化配置
    • 4.6 安裝插件
    • 4.7 創建工程
      • 4.7.1 創建工程
      • 4.7.2 指定工程名稱和工程類型
      • 4.7.3 源碼管理
      • 4.7.4 構建
      • 4.7.5 構建后操作
      • 4.7.6 手動構建
      • 4.7.7 構建觸發器
    • 4.8 獲取 crumb 值
    • 4.9 Linux 的 curl 命令
      • 4.10編輯 SVN 版本庫中的鉤子程序
      • 4.11測試
      • 4.12補充
  • 5 Jenkins+GitHub 持續集成環境搭建
    • 5.1 要點
    • 5.2 Linux 環境下安裝 Git
    • 5.3 在 Jenkins 中指定 Git 程序位置
    • 5.4 在 GitHub 上添加 WebHook
    • 5.5 在 Jenkins 內關閉“防止跨站點請求偽造”

持續集成工具 Jenkins

1 從裝修廚房看項目開發效率優化

1.1 持續部署

裝修廚房

全部裝好之后發現燈不亮, 電路有問題; 冷熱水裝反了, 管路有問題。 這些問題要解決就必須把地磚、 墻磚拆掉——一個環節有問題, 其他環節跟著返工。

那怎么做會好一些呢?

任何安裝完成及時測試, 確保其可以正常工作。

項目開發

開發過程中進行單元測試能夠通過, 但是部署到服務器上運行出現問題。

那怎么做會好一些呢?

僅僅單元測試還不夠, 各個模塊都必須能夠在服務器上運行。

關注點

持續部署的關注點在于項目功能部署至服務器后可以運行, 為下一步測試環節或最終用戶正式使用做好準備。

1.2 持續集成

裝修廚房

裝修廚房時我們需要鋪地磚, 如果把所有地磚都切好再拿去鋪就會發現: 每一塊地磚單獨看都是好的, 但是實際鋪的時候, 把所有地磚整合起來, 發現和廚房地面總體尺寸不匹配, 邊邊角角的地磚需要重新切, 時間和物料成本陡然升高。

那怎么做會好一些呢?

切一塊鋪一塊, 根據需要的尺寸來切, 盡早發現尺寸變化, 避免返工。

項目開發

各個小組分別負責各個具體模塊開發, 本模塊獨立測試雖然能夠通過, 但是上線前夕將所有模塊整合到一起集成測試卻發現很多問題, 想要解決就需要把很多代碼返工重寫而且仍然有可能有問題, 但現在時間很可能不夠了。

那怎么做會好一些呢?

經常性、 頻繁的把所有模塊集成在一起進行測試, 有問題盡早發現, 這就是持續集成。

關注點

持續集成的關注點在于盡早發現項目整體運行問題, 盡早解決。

1.3 持續交付

裝修廚房

全部裝修好之后房屋主人來驗收, 各項功能都正常, 但是水龍頭的樣式主人不喜歡, 灶臺的位置主人不滿意, 要求返工。

那怎么做會好一些呢?

房屋主人隨時查看裝修進度, 施工團隊及時調整。

項目開發

項目的各個升級版本之間間隔時間太長, 對用戶反饋感知遲鈍, 無法精確改善用戶體驗, 用戶流失嚴重。

那怎么做會好一些呢?

小版本不斷進行快速迭代, 不斷收集用戶反饋信息, 用最快的速度改進優化。

關注點

持續交付的關注點在于研發團隊的最新代碼能夠盡快讓最終用戶體驗到。

1.4 總體目標

好處 1: 降低風險

一天中進行多次的集成, 并做了相應的測試, 這樣有利于檢查缺陷, 了解軟件的健康狀況, 減少假定。

好處 2: 減少重復過程

產生重復過程有兩個方面的原因, 一個是編譯、 測試、 打包、 部署等等固定操作都必須要做, 無法省略任何一個環節; 另一個是一個缺陷如果沒有及時發現, 有可能導致后續代碼的開發方向是錯誤的, 要修復問題需要重新編寫受影響的所有代碼。

而使用 Jenkins 等持續集成工具既可以把構建環節從手動完成轉換為自動化完成, 又可以通過增加集成頻次盡早發現缺陷避免方向性錯誤。

好處 3: 任何時間、 任何地點生成可部署的軟件

持續集成可以讓您在任何時間發布可以部署的軟件。 從外界來看, 這是持續集成最明顯的好處, 我們可以對改進軟件品質和減少風險說起來滔滔不絕, 但對于客戶來說, 可以部署的軟件產品是最實際的資產。 利用持續集成, 您可以經常對源代碼進行一些小改動, 并將這些改動和其他的代碼進行集成。 如果出現問題, 項目成員馬上就會被通知到, 問題會第一時間被修復。 不采用持續集成的情況下, 這些問題有可能到交付前的集成測試的時候才發現, 有可能會導致延遲發布產品, 而在急于修復這些缺陷的時候又有可能引入新的缺陷, 最終可能導致項目失敗。

好處 4: 增強項目的可見性

持續集成讓我們能夠注意到趨勢并進行有效的決策。 如果沒有真實或最新的數據提供支持, 項目就會遇到麻煩, 每個人都會提出他最好的猜測。 通常, 項目成員通過手工收集這些信息, 增加了負擔, 也很耗時。 持續集成可以帶來兩點積極效果:

  • 有效決策: 持續集成系統為項目構建狀態和品質指標提供了及時的信息,有些持續集成系統可以報告功能完成度和缺陷率。
  • 注意到趨勢: 由于經常集成, 我們可以看到一些趨勢, 如構建成功或失敗、總體品質以及其它的項目信息。
  • 好處 5: 建立團隊對開發產品的信心

    持續集成可以建立開發團隊對開發產品的信心, 因為他們清楚的知道每一次構建的結果, 他們知道他們對軟件的改動造成了哪些影響, 結果怎么樣。

    2 持續集成工具

    2.1 Jenkins 和 Hudson

    目前最流行的一款持續集成及自動化部署工具。

    Jenkins 和 Hundson 之間的關系: 2009 年, 甲骨文收購了 Sun 并繼承了 Hudson 代碼庫。 在 2011 年年初, 甲骨文和開源社區之間的關系破裂, 該項目被分成兩個獨立的項目:

    • Jenkins: 由大部分原始開發人員組成
    • Hudson: 由甲骨文公司繼續管理

    所以 Jenkins 和 Hudson 是兩款非常相似的產品。

    2.2 技術組合

    Jenkins 可以整合 GitHub 或 Subversion

    Husband 也可以整合 GitHub 或 Subversion

    二者既然是同源的工具軟件, 操作和指導思想就是接近的, 所以本教程通過 Jenkins為大家呈現。

    3 JavaEE 項目部署方式對比

    3.1 手動部署

    3.2 自動化部署

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

    搭建上述持續集成環境可以把整個構建、 部署過程自動化, 很大程度上減輕工作量。對于程序員的日常開發來說不會造成任何額外負擔——自己把代碼提交上去之后, 服務器上運行的馬上就是最新版本——一切都發生在無形中。

    下面我們講帶領大家一步一步搭建整套持續集成環境, 這個操作過程只需要細心認真即可, 沒有任何難度。 但是需要優秀的你具備以下前置知識:

    • Linux 基本操作命令和 VIM 編輯器使用
    • Maven 的項目構建管理
    • GitHub 或 SVN 使用

    4 Jenkins+SVN 持續集成環境搭建

    4.1 系統結構總述

    創建虛擬機安裝 Linux 系統

    • 安裝版本控制工具的虛擬機
    • 安裝Jenkins的虛擬機
    • 部署項目的虛擬機

    版本控制子系統

    • Subversion 服務器(具體參考SVN文檔:待補充)
    • 項目對應版本庫
    • 版本庫中鉤子程序

    持續集成子系統

    • JDK (具體參考SVN文檔:待補充)
    • Tomcat (具體參考SVN文檔:待補充)
    • Maven (具體參考SVN文檔:待補充)
    • Jenkins
      • 主體程序
      • SVN 插件
      • Maven 插件
      • Deploy to Web Container 插件

    應用發布子系統

    • JDK
    • Tomcat

    4.2 版本控制子系統

    詳細過程我們就省略了, 這里記錄一下版本庫的訪問賬號密碼

    ※特別提示: svnserve.conf 文件中 anon-access 一定要打開注釋并設置為 none

    4.3 應用發布子系統

    詳細過程同樣省略, 僅記錄 Tomcat 服務器的賬號密碼

    配置文件位置: /opt/tomcat/conf/tomcat-users.xml

    <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status" />

    4.4 Jenkins 主體程序安裝配置

    • 把 jenkins.war 放在 Tomcat 解壓目錄/webapps 目錄下
    • 打開 Tomcat 解壓目錄/server.xml 修改 URL 地址的編碼解碼字符集
    vim /opt/tomcat/conf/server.xml <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/>
    • 啟動 Tomcat 并通過瀏覽器訪問
      • 網址示例: http://192.168.70.131:8080/jenkins
    • 解鎖 Jenkins

    依照提示, 查看/root/.jenkins/secrets/initialAdminPassword 文件內容填入文本框

    這里填入的密文同時也是 admin 賬號的密碼。

    • 選擇插件安裝方式

    選擇哪種方式都不會對后續操作有太大影響。 因為有需要的插件我們可以在后續有針對性的安裝。

    本教程在這里選擇“安裝推薦的插件”。

    安裝過程如下:

    打× 的插件是由于網絡傳輸導致的安裝失敗, 后面再重新安裝即可。

    ※注意: 這個步驟中如果選擇了安裝插件則 Linux 必須能夠聯網。

    • 新建賬號或以管理員身份繼續

    可以選擇使用 admin 賬戶繼續, 后面有需要仍然有機會注冊新賬戶。

    • 開始使用 Jenkins

    4.5 系統初始化配置

    • 系統管理界面
    • 全局安全配置
    • 全局工具配置: Maven Configuration
    • 全局工具配置: JDK
    • 全局工具配置: Maven
    • 全局工具配置: Git[若有] (在此是SVN的教程)
      不使用 Git, 所以刪除即可。

    4.6 安裝插件


    在此需要的兩個插件:SVN (已在已安裝列表)和 Deploy to container
    安裝插件時受到網絡狀況的影響有可能會失敗, 不要緊, 多試幾次, 直到成功。

    4.7 創建工程

    4.7.1 創建工程

    4.7.2 指定工程名稱和工程類型

    4.7.3 源碼管理


    這里一定要再選一下!

    配好的效果:

    ※注意: 此時 Jenkins 的工作區中還沒有代碼, 需要執行一次構建操作之后Jenkins 才會下載代碼。

    4.7.4 構建

    4.7.5 構建后操作



    這里同樣一定要選一下!

    4.7.6 手動構建

    Jenkins 使用天氣狀況來表示構建成功率

    4.7.7 構建觸發器

    遠程觸發的基本原理是 SVN 服務器給 Jenkins 項目特定的 URL 地址發送請求,但必須以請求參數的形式攜帶一個特定值, 這個特定值就是這里的“身份驗證令牌”。

    比如我們這個項目的地址觸發地址是:http://192.168.70.131:8080/jenkins/job/ProOne/build

    身份驗證令牌是:ATGUIGU_TOKEN

    那么最終的訪問地址就是:http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN

    觸發訪問地址中 Jenkins 訪問地址是根據實際情況改變的, 項目名稱根據實際情況改變, 其他都不變。

    4.8 獲取 crumb 值


    攜帶 API Token 訪問下面地址:http://admin:090d592c760bf922d554ed4b1abb2137@192.168.70.131:8080/jenkins/crumbIssuer/api/xml

    則觸發 Jenkins 遠程構建時需要攜帶的請求消息頭就是:
    Jenkins-Crumb:5dbccaf47a86bf5b675456f58855fe16

    4.9 Linux 的 curl 命令

    Linux 的 curl 命令用來發送 HTTP 請求。
    -X 參數: 指定請求方式
    -v 參數: 顯示響應結果
    -u 參數: 攜帶用戶名/密碼
    -H 參數: 攜帶請求消息頭信息

    curl -X post -v -u [Jenkins 用戶名]:[Jenkins 密碼] -H "請求消息頭信息" http://[服務器 IP 地址]:[服務器端口號]/jenkins/job/[Jenkins 項目名稱]/build?token=[身份驗證令牌] curl -X post -v -u admin:2f6bff33bda14baba83ba1c002045f05 -H "Jenkins-Crumb:88a12946e07d82b3b0d567c7c4610c9a" http://192.168.70.131:8080/jenkins/job/ProOne/build?token=ATGUIGU_TOKEN

    4.10編輯 SVN 版本庫中的鉤子程序

    • 鉤子程序由 post-commit.tmpl 復制得到
      • 這里注意不要使用任何擴展名。 如果按照我們習慣的使用.sh 擴展名則鉤子程序無法正常工作。
      • 記得使用 chmod 命令設置為可執行權限
    • 把原有內容注釋, 加入 curl 命令

    4.11測試

    在 Eclipse 中提交修改, 在頁面上查看顯示內容變化

    4.12補充

    如果發生 Jenkins 服務器從 SVN 服務器下載代碼不是最新版的情況, 那么就在 SVN服務器的 URL 地址后面加上@HEAD 強制要求下載最新版。

    5 Jenkins+GitHub 持續集成環境搭建

    這部分屬于簡略介紹要點

    5.1 要點

    Jenkins 與 GitHub 配合實現持續集成需要注意以下幾點:

    • 第一: Jenkins 要部署到外網上, 因為內網地址 GitHub 是無法訪問到的。這一點可以通過租用阿里云等平臺提供的云服務器實現。
    • 第二: Jenkins 所在的主機上需要安裝 Git, 通過 Git 程序從 GitHub 上 clone 代碼。
    • 第三: 在 Jenkins 內需要指定 Git 程序位置, 和指定 JDK、 Maven 程序位置非常類似。
    • 第四: 在 GitHub 上使用每個 repository 的 WebHook 方式遠程觸發 Jenkins 構建。
    • 第五: 在 Jenkins 內關閉“防止跨站點請求偽造”

    5.2 Linux 環境下安裝 Git

    • 第一步: 安裝編譯 git 時需要的包
      • yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
      • yum install -y gcc perl-ExtUtils-MakeMaker
    • 第二步: 刪除已有的 git
      • yum remove git
    • 第三步: Git 官網下載 Git 最新版 tar 包, 移動到/usr/src 目錄下
      • cd /usr/src
      • tar -zxvf git-2.9.3.tar.gz
    • 第四步: 編譯安裝
      • cd git-2.9.3
      • make prefix=/usr/local/git all
      • make prefix=/usr/local/git install
      • echo “export PATH=$PATH:/usr/local/git/bin” >> /etc/bashrc
      • source /etc/bashrc
    • 第五步: 檢查一下版本號
      • git --version

    5.3 在 Jenkins 中指定 Git 程序位置

    5.4 在 GitHub 上添加 WebHook

    5.5 在 Jenkins 內關閉“防止跨站點請求偽造”

    總結

    以上是生活随笔為你收集整理的持续集成工具Jenkins_尚硅谷视频学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。