<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                >[danger] # Jenkins簡介 Jenkins簡介 Jenkins自動化部署可以解決集成、測試、部署等重復性的工作,工具集成的效率明顯高于人工操作;并且持續集成可以更早的獲取代碼變更的信息,從而更早的進入測試階段,更早的發現問題,這樣解決問題的成本就會顯著下降:持續集成縮短了從開發、集成、測試、部署各個環節的時間,從而也就縮短了中間出現的等待時間;持續集成也意味著開發、集成、測試、部署得以持續。。 使用Maven(Ant)等來實現lava項目自動化構建發布部署。這些工具可以幫助在構建過程中實現自動化發布、回滾等動作。 1、簡介 Jenkins是一個用Java編寫的開源的持續集成工具。官方網站:https://jenkins.io/ Jenkins能實時監控持續集成過程中所存在的問題,提供詳細的日志文件和提醒功能,還能用圖表的形式,形象地展示項目構建的趨勢和穩定性。 2、特點 ?易安裝:僅僅一個jenkins.war,叢官網下載該文件后,直接運行,無需額外的安裝, ?更無需安裝數據庫; ?易配置:提供友好的GUI配置界面; ?變更支持:Jenkins能從代碼倉庫(SVN/Git)中獲取并產生代碼更新列表,并輸出到編譯輸出信息中; ?支持永久鏈接:用戶是通過Web來訪問Jenkins的,而這些Web頁面的鏈接地址都是永久鏈接地址,可以在各種文檔中直接使用該鏈接; ?集成E-Mail/RSS/M:當完成一次集成時,可通過這些工具實時收取集成結果(構建-次集成需要花費一定時間,有了這個功能,就可以在等待結果過程中,干別的事情); ?JUnit/TestING測試報告:也就是用以圖表等形式提供詳細的測試報表功能; ?支持分布式構建:Jenkins可以把集成構建等工作分發到多臺計算機中完成; ?文件指紋信息:Jenkins會保存構建集成所產生的jars文件、集成構建使用了哪個版; 支持第三方插件:Jenkins支持第三方插件,這使得Jenkins功能變得越來越強大; 3、持續集成(CI) 含義:頻繁的(一天多次的)將所有開發者的工作合并到主干上。 持續集成的核心在于確保新增的代碼能夠與原先代碼正確的集成。與后續要介紹的持續交付以及持續部署,其最主要的差別也就在于其目標不同。 不過持續集成的流程還存在一定的異議:上圖所示的流程為 Build -> Test,在阮老師的教程里頭是 Test -> Build。不過,持續集成本身只不過是一種軟件工程的方法或者策略,其并不規定具體的實現。在實際的應用中,還是需要結合具體的開發語言或者工具來定。 持續集成的優勢 易于定位錯誤:每一次的代碼集成都需要執行相關的測試工作,持續集成頻繁的集成次數天然的將復雜的代碼邏輯切割為了小塊,也就使得每一次測試中遇到的錯誤能夠更加容易的被定位; 易于控制開發流程:更為細致的工作提交也就意味著更容易判斷當前的工作進度,這對于管理者規劃開發流程而言提供了一個有效的參考,同時也為開發人員省下了匯報工作的時間; 易于減少不必要的工作:build 以及 test 過程的自動化可以為你節約一大票的時間,從而投入到有價值的工作中去 4、持續交付(CD) 持續交付 指的是:一種能夠使得軟件在較短的循環中可靠的發布的軟件工程方法。 與持續集成相比,持續交付的側重點在于 交付,其核心對象不在于代碼,而在于可交付的產物。由于持續集成僅僅針對于新舊代碼的集成過程執行了一定的測試,其變動到持續交付后還需要一些額外的流程。 5、持續部署(CD) 持續部署即在持續交付的基礎上,把部署到生產環境的過程自動化。 6、Maven介紹 Maven項目對象模型(POM)是可以通過一小段描述信息來管理項目的構建、報告和文檔的軟件項目管理工具。 Maven除了以程序構建能力為特色之外,還提供高級項目管理工具。由于Maven的缺省構建規則有較高的可重用性,所以常常用兩三行Maven構建腳本就可以構建簡單的項目。 由于Maven的面向項目的方法,許多Apache Jakarta項目發文時使用Maven,而且公司項目采用Maven的比例在持續增長。 7、傳統網站部署流程 在運維過程中,網站部署是運維的工作之一。傳統的網站部署的流程大致分為:需求分析->原型設計->開發代碼->提交代碼->內網部署->內網測試->確認上線->備份數據->外網更新->外網測試->發布完成。如果在內網測試時發現代碼有異常,返回代碼開發人員名字,調整代碼;如果在外網測試時發現外網部署的代碼有異常,可以及時進行網站回滾。 ![](https://img.kancloud.cn/2e/ec/2eece86fac884a2ce38e353c86a81b7d_871x441.png) 手動上線步驟: 開發人員發起代碼上線的需求(郵件中包含開發做好的WAR包)-)運維人員連接線上負載調度器(Nginx)-->隔離一組服務器(Tomcat)-->連接服務器(Tomcat)-->備份舊代碼(tar打包)-->刪除舊代碼目錄-->上傳新的WAR包-->外網測試-->測試不通過則通過備份回滾代碼-->測試通過則利用rsync的腳本推送代碼到其他服務器-->統一外網測試->連接調度器恢復隔離機制-->隔離另一組服務器實施上線步驟-->上線完成。 8、目前主流網站部署流程 通過Hudson/Jenkins工具平臺實現全自動部署+測試,是一個可擴展的持續集成引擎,屬于開源軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。Jenkins非常易于安裝和配置,簡單易用。 開發人員:寫好代碼,不需要自己進行源碼編譯、打包等工作,直接將代碼分支存放在SVI、Git倉庫即可。 運維人員:減輕人工干預的錯誤率,同時解放運維人員繁雜的上傳代碼、手動備份、更新等操作。 測試人員:可以通過Jenkins進行簡單的代碼及網站測試 ![](https://img.kancloud.cn/b0/67/b067d611a594d8dbad4da8baabf0f648_853x353.png) 9、Jenkins的工作原理 是先將源代碼從SVN/Git版本控制系統中拷貝一份到本地,然后根據設置的腳本進行build(構建)。整個系統的關鍵就是build腳本,build腳本告訴Jenkins在一次集成中需要執行的任務。 >[danger] ## Windows環境中安裝Jenkins 在最簡單的情況下,Jenkins?只需要兩個步驟: 1、下載最新的版本(一個?WAR?文件)。Jenkins官方網址:?[http://Jenkins-ci.org/](http://jenkins-ci.org/) 2、命運行運行?java?-jar?jenkins.war (默認情況下端口是8080,如果要使用其他端口啟動,可以通過命令行”java –jar Jenkins.war --httpPort=80”的方式修改) 注意:Jenkins?需要運行?Java?5以及以上的版本,老版本是war包新版本是msi如果是war包按照上述步驟安裝即可,msi直接雙擊安裝。 還有一種安裝方式就是將下載的war包文件部署到?servlet?容器,然后啟動容器,在瀏覽器的URL地址欄中輸入類似[http://localhost:8080/jenkins/](http://localhost:8088/hudson/)這樣的地址即可。下圖是安裝成功后的界面(使用的是Linux+Tomcat6+Java6環境): ![](https://img.kancloud.cn/66/a5/66a52a10807d9f86347aff824a577939_1400x523.jpg) >[danger]## Jenkins配置 在配置前的一些話:Jenkins的配置不可能全部都說到的,大部分配置是有英文說明的,點擊輸入框后面的問號就可以看見了。英文不會用翻譯工具,多測試幾次,你就懂了。 ## 2.1?系統管理 在已運行的Jenkins主頁中,點擊左側的系統管理進入如下界面: ![](https://img.kancloud.cn/11/f5/11f5ff2d1a45a0750c384743599ebfb5_555x416.png) ### 2.1.1?提示信息 Ps:版本不同提示的消息有可能不同 ### 2.1.1.1?Utf-8編碼 Your?container?doesn't?use?UTF-8?to?decode?URLs.?If?you?use?non-ASCII?characters?as?a?job?name?etc,?this?will?cause?problems.?See?[Containers](http://wiki.jenkins-ci.org/display/JENKINS/Containers)?and?[Tomcat?i18n](http://wiki.jenkins-ci.org/display/JENKINS/Tomcat#Tomcat-i18n)?for?more?details. Jenkins建議在tomcat中使用utf-8編碼,配置tomcat下conf目錄的server.xml文件 ?![](https://images0.cnblogs.com/blog/529896/201308/12163628-5e18c80f1c44409fb584a8a618299e12.png) Ps:如果Job的控制臺中文輸出亂碼,請將URIEncoding=”utf-8”更改為useBodyEncodingForURI="true" ### 2.1.1.2?新的版本 New?version?of?Jenkins?(1.518.JENKINS-14362-jzlib)?is?available?for?download?(changelog). 提示有新的版本可以下載了,喜歡更新的點擊download去下載吧! ### 2.1.1.3?安全設置 ![](https://img.kancloud.cn/2f/b0/2fb066058fc689540ad27d5c2991e3f8_789x33.png) 詹金斯允許網絡上的任何人代表您啟動進程。考慮至少啟用身份驗證來阻止濫用。點擊Dismiss忽略該消息,點擊Setup?Security進入設置界面.詳細設置請參考?Configure?Global?Security(安全設置)?章節 ### 2.1.2?系統設置 在已運行的Jenkins主頁中,點擊左側的系統管理—>系統設置進入如下界面: ![](https://img.kancloud.cn/a1/93/a19336ea1c67e65eeaffcca04c3752d9_1399x726.jpg) ? ?ps:jenkins的根目錄,默認地在C:\\Documents and Settings\\AAA\\.hudson。 ### 2.1.2.1?JDK、Maven、Ant配置(圖為Windows環境) 配置一個JDK、Ant、Maven實例,請在每一節下面單擊Add(新增)?按鈕,這里將添加實例的名稱和絕對地址。下圖描述了這兩個部分。 ![](https://img.kancloud.cn/11/74/11741d84ed3839bbd463f8f48e3ca726_1021x218.jpg) 點擊“安裝”,添加相應的設置,如下圖: ![](https://img.kancloud.cn/13/80/138036173aefd54a4a5092bda6e7b6f1_1043x558.jpg) JDK別名:給你看的,隨便你自己 JAVA\_HOME:這個是本機JDK的安裝路徑(錯誤的路徑會有紅字提示你的) 自動安裝:不推薦這個選項 注:Ant、Maven的配置是一樣的(JDK去oracle官網下載,Ant與Maven去apache官網下載) Ps:每個文本框后面都有個問號,點擊問號就會出現幫助信息 ### 2.1.2.2?郵件通知配置(默認) #### 2.1.2.2.1?配置發件人地址 ![](https://img.kancloud.cn/57/96/5796a4083ca55e337c4ac4708d265f3a_1018x125.jpg) 系統管理員郵件地址(System?Admin?e-mail?address):Jenkins郵件發送地址,切記,必須設置。 #### 2.1.2.2.2?配置郵件通知 ![](https://img.kancloud.cn/5e/7e/5e7e3830c0ddd198677b6c7b63be1331_1009x405.jpg) 設置:SMTP服務器,勾選"使用SMTP認證",輸入用戶名與密碼 Ps:小技巧:用戶默認郵件后綴配置了后,以后你填寫郵件地址只需要@之前的就行了 ### 2.1.2.3?Subversion配置 ![](https://img.kancloud.cn/ed/d4/edd4e7a24fcc36dfdcbfa6c4da795902_995x135.jpg) ? Subversion?Workspace?Version:Subversion?的版本號,選擇你對應的版本號就行了 ### 2.1.3?Configure?Global?Security(安全設置) 在已運行的Jenkins主頁中,點擊左側的系統管理—>Configure?Global?Security進入如下界面: ![](https://img.kancloud.cn/f9/56/f956f70d011ca415f8ebac09c21bc41f_1010x531.jpg) 設置如上圖,保存后系統管理中就出現管理用戶的選項。頁面右上角也會出現登錄/注冊的選項。 此設置:只有登錄用戶可以做任何事 ### 2.1.4?管理用戶設置 在右上角點擊注冊 ![](https://img.kancloud.cn/02/9d/029d027e54ac1093c287df6164fd515d_330x227.png) 點擊sign?up按鈕,提示你現在已經登錄.返回首頁. 登錄后和匿名賬號看到的首頁有幾點不同,如下圖紅框所示: ![](https://img.kancloud.cn/19/d4/19d4371831f0b53c746233d265f058d9_1398x313.jpg) ### 2.1.5?管理插件設置 建議先閱讀[Jenkins插件](http://www.cnblogs.com/zz0412/p/jenkins02.html#_Jenkins%E6%8F%92%E4%BB%B6)章節,在回來安裝如下所示的插件。 需求:這個插件將生成的構件(war或者ear)部署到主流的服務器上。 插件名稱:[Deploy?Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Deploy+Plugin) 插件介紹:This?plugin?takes?a?war/ear?file?and?deploys?that?to?a?running?remote?application?server?at?the?end?of?a?build ## 2.2?項目構建設置 ### 2.2.1?構建自由風格的Job #### 2.2.1.1?新建自由風格構建任務 在已運行的Jenkins主頁中,點擊左側的新建Job進入如下界面: ![](https://img.kancloud.cn/3e/b6/3eb6fedc596e9b36436d5154b047a37f_946x322.png) 這時,需要為新的構建任務指定一個名稱。(這里輸入的任務名稱為:Ant\_test)這里有幾種的任務類型可供選擇,鑒于初步介紹,先選擇構建一個自由風格的軟件項目。對于其他的類型,經常使用的是拷貝已存在任務;這主要為了能在現有的任務基礎上新建任務。點擊OK按鈕. **需要注意的是**: 1.Job名稱千萬不要用中文名稱(不作死就不會死)。 2.創建Job名稱時最好有個規劃,因為我們最后會通過正則匹配自動將Job歸類,比如我喜歡 “項目前綴\_一些說明-Job類型”這種方式。 ### 2.2.1.2?構建任務配置 ### 2.2.1.2.1?源碼管理配置 演示是使用Subversion的鏈接,在Repository?URL中輸入你的項目鏈接,如果沒有權限則會提示如下圖: ![](https://img.kancloud.cn/9b/61/9b615b8395daf022bfdf164af9ed7e92_1003x578.jpg) ? 設置成功后,就直接從SVN此目錄獲取文件到本地。Ps:要先添加Credentials。添加的方法如下操作: 點擊Jenkins首頁左側Credentials,進入頁面 ![](https://img.kancloud.cn/f9/66/f966b990ba31b6e24c8cf9724ccf433e_1401x261.jpg) ![](https://img.kancloud.cn/77/ff/77ffb312c08bcd26f27792d9b87c8100_1398x291.jpg) 下一步:一般都是使用的用戶名和密碼登陸的 ![](https://img.kancloud.cn/51/a4/51a42490b540c89fe0386ba713ec3d24_1398x385.jpg) Ps:svn的用戶名和密碼設置了是沒有辦法在web界面修改的。如果要修改則先去Jenkins目錄刪除hudson.scm.SubversionSCM.xml文件 ### 2.2.1.2.2?構建觸發器 在其他項目構建完成后才執行構建:指定的項目完成構建后,觸發此項目的構建。 Poll?SCM?:這是CI?系統中常見的選項。當您選擇此選項,您可以指定一個定時作業表達式來定義Jenkins每隔多久檢查一下您源代碼倉庫的變化。如果發現變化,就執行一次構建。例如,表達式中填寫0,15,30,45?\*?\*?\*?\*將使Jenkins每隔15分鐘就檢查一次您源碼倉庫的變化。 Build?periodically?:此選項僅僅通知Jenkins按指定的頻率對項目進行構建,而不管SCM是否有變化。如果想在這個Job中運行一些測試用例的話,它就很有幫助。 ![](https://img.kancloud.cn/bf/72/bf72ae20bfc863552d7584a7566a3c29_996x282.jpg) ### 2.2.1.2.3?Ant構建配置 因為我的項目是用ant腳本實現的編譯和打包,所以我選擇的是Invoke?Ant,Ant?Version選擇你Ant配置的那個名字,注意不要選擇default喔,那個選擇了沒有用。 ![](https://img.kancloud.cn/71/71/71717f431beeb411736ec8fd7c1135cf_1001x247.jpg) Ps:如果你的構建腳本build.xml不在workspace根目錄、或者說你的構建腳本不叫build.xml。那么需要在高級里設置Build?File選項的路徑,指明你的腳本。注意:是相對路徑 ## 2.2?監控 當任務一旦運行,您將會看到這個任務正在隊列中的儀表板和當前工作主頁上運行。這兩種顯示如下。 ![](https://img.kancloud.cn/4d/98/4d98575caac7383e7e4f2c9929d58d6a_345x125.jpg) ![](https://img.kancloud.cn/4a/03/4a03c0aabc136dd8e92eabf584667288_340x216.jpg) 一旦構建完成后,完成后的任務將會有三個地方進行顯示。 你可以在Jenkins的控制面板上看到它,如下圖。 ![](https://img.kancloud.cn/d1/79/d179e165f61a0c114265d4e8396e9922_1010x106.jpg) 在上面展示的截圖中,您將注意到有兩個圖標描述當前作業的狀態。S欄目代表著“最新構建狀態”,W欄目代表著“構建穩定性”。Jenkins使用這兩個概念來介紹一個作業的總體狀況: 構建狀態:下圖中分級符號概述了一個Job新近一次構建會產生的四種可能的狀態:? Successful:完成構建,且被認為是穩定的。 Unstable:完成構建,但被認為不穩定。 Failed:構建失敗。 Disabled:構建已禁用。 ![](https://img.kancloud.cn/72/2a/722a16da06456a9a822188a1b0ee22d7_269x74.jpg) 構建穩定性:?當一個Job中構建已完成并生成了一個未發布的目標構件,如果您準備評估此次構建的穩定性,Jenkins會基于一些后處理器任務為構建發布一個穩健指數?(從0-100?),這些任務一般以插件的方式實現。它們可能包括單元測試(JUnit)、覆蓋率(Cobertura?)和靜態代碼分析(FindBugs)。分數越高,表明構建越穩定。下圖中分級符號概述了穩定性的評分范圍。任何構建作業的狀態(總分100)低于80分就是不穩定的。 ![](https://img.kancloud.cn/68/8a/688adc5f8efd36c308affc705bdf937a_212x71.jpg) 你也可以在當前Job主界面上看到它,如下圖左下部分 ![](https://img.kancloud.cn/b9/cd/b9cd150feb7e1f658c804b830632a7a4_1394x548.jpg) 當前作業主頁上還包含了一些有趣的條目。左側欄的鏈接主要控制Job的配置、刪除作業、構建作業。右邊部分的鏈接指向最新的項目報告和構件。 通過點擊構建歷史(Build?History)中某個具體的構建鏈接,您就能跳轉到Jenkins為這個構建實例而創建的構建主頁上。如下圖 ![](https://img.kancloud.cn/ed/60/ed602861bfa785ce56f1c140b7e8b3fa_1398x314.jpg) 如果你想通過視圖輸出界面來監控當前任務的進展情況。你可以單擊Console?Output(控制臺輸出)。如果工作已完成,這將顯示構建腳本產生的靜態輸出;如果作業仍然在運行中,Jenkins將不斷刷新網頁的內容,以便您可以看到它運行時的輸出。如下圖: ![](https://img.kancloud.cn/5c/a9/5ca9bc38c7a66acade39194d517abb7e_1004x625.jpg) >[danger]## Jenkins插件 從Jenkins現有的功能擴展或開發者們為Jenkins提供的新功能都可以稱之為Jenkins插件。有些插件可以無縫添加到您的構建過程,而其它,諸如除CVS和Subversion的SCM插件則需要源代碼控制系統的支持。 ### 3.1?Jenkins插件安裝 Jenkins?插件管理器允許您安裝新的插件,和更新您Jenkins服務器上的插件。管理者將連接到聯機資料庫,檢索可用的和已更新的插件。如果您的Jenkins服務器?無法直接連接到外部資源,您可以從Jenkins網站上下載。 在已運行的Jenkins主頁中,點擊左側的系統管理—>管理插件進入如下界面: ![](https://img.kancloud.cn/70/9a/709a146f4534c7ddbcdb81aa2f37bf86_1019x613.jpg) 它包含四個標簽: 更新:清單中列示了Jenkins為某些插件搜索到了可用的更新。列出的每個插件可以被選擇并應用更新。 可選安裝:清單中列示了可用于安裝(而不是目前已安裝的)的所有插件。列出的每個插件都可以被選擇并安裝。 已安裝:清單中列示了已經安裝的插件。 高級:允許您通過設定HTTP代理的方式使Jenkins與在線插件庫建立連接。此外,還提供了一個上傳設備,可以安裝你在Jenkins以外已下載的那些插件。 由上圖可知,Jenkins缺省集成了maven2插件,并且一旦插件有新版本,會提示更新新版本插件。 如果想安裝新的插件,可以點擊tab分頁中的可選插件。如下圖: ![](https://img.kancloud.cn/f7/a4/f7a4cd194584217f6a59818c6f456cc1_896x605.png) 從圖可知,各種Jenkins插件根據之前所記述的類型進行分門別類。可勾選任意想安裝的Jenkins插件,點擊Install?without?restart按鈕進行安裝。安裝后,所有插件以hpi作為后綴名放置在plugins文件夾下。如果是高級用戶還可以自行開發插件方便具體項目使用。 注意:安裝完成后需要重啟Jenkins部署的容器。這樣才能使用新裝的插件。 ### 3.2?Jenkins插件安裝示例 Jenkins運行自動部署war包到servlet容器內,要實現這個功能必須安裝一個插件。 ![](https://img.kancloud.cn/f7/a4/f7a4cd194584217f6a59818c6f456cc1_896x605.png) ![](https://img.kancloud.cn/96/f9/96f9e8963f171b737facb38d1864ebd9_392x254.png) 下面附上完整的用戶手冊供大家參考 https://www.jenkins.io/zh/doc/
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看