jenkins實現(xiàn)持續(xù)集成

手動部署流程
自動部署流程

實現(xiàn)步驟

安裝包jenkins

自己百度吧

jenkins配置

系統(tǒng)管理

一、全局安全配置

  • 允許用戶操作

二、全局工具配置

*   Maven Configuration

    *   Default setting provider
        *   選擇Setting file in filesystem
        *   file path 通過 echo $MAVEN_HOME獲得,但是后面要加conf/setting.xml

    *   Default Global setting provider 和上面的一樣

    *   注意:
        *   指定maven的setting.xml文件的位置(idea工具中也會配置這個地址)
        *   注意:不是自己本機 ,是liunx服務(wù)器中的位置


*   JDK

    *   點新增JDK。起一個名字,可以隨便起,但是要有值
    *   不要自動安裝
    *   echo $JAVA_HOME獲得


*   MAVEN

    *   name起個名字
    *   不自動安裝
    *   值可以通過 echo $MAVEN_HOME獲得


*   Git

    *   起個名字
    *   添加cmd/git.exe的地址

三、插件管理

*   deploy to web container
*   git plugin

jenkins上創(chuàng)建任務(wù)

  1. 創(chuàng)建一個自由風格的軟件項目

  2. 源碼管理:用于檢出源碼

git,添加git項目的下載路徑

  1. 配置構(gòu)建
    1.  Invoke top-level Maven targets

    2.  Maven Version:填寫上面的Maven配置名稱

    3.  Goals :填寫 【clean install】
  1. 點擊立即構(gòu)建
    1.  觀察構(gòu)建日志

    2.  成功后,可以再工作區(qū)中看到下載下來的代碼

    3.  工作區(qū)中的target文件夾中放置的是構(gòu)建的結(jié)果和打包的結(jié)果

    4.   jenkins的構(gòu)建成功率是用天氣圖標來表示的

配置部署相關(guān)的配置

  1. 在創(chuàng)建的項目中,點擊【構(gòu)建后操作】,用于處理war包,進行部署

  2. 選擇 【Deploy warlear to a container】,沒有就去安裝插件

  3. 這里填寫的路徑是以【工作區(qū)】為根目錄的,(上面的截圖就是工作區(qū)目錄下的文件)

  4. 在WAR/EAR file中 填寫【target/war包的名字】

  5. 如何獲取war包的名字

    1. 在Idea的項目中pom.xml,右鍵—>Run as —>maven build

    2. 在打開的頁面中 填寫 Goals一欄

    3. 填寫package,進行打包

    4. 在項目的target目錄下,查看打出來的war包名字即可

  6. 在WAR/EAR file中 填寫【target/war包的名字】

  7. context path 是將來通過瀏覽器輸入地址欄,來訪問這個war包的項目的名字。如果用報名,就太長了,所以要根據(jù)項目名字在這里填寫一下。

  8. Contains:容器。這里選擇Tomcat7.X這種類似的

    1. Credentials :添加tomcat的用戶名和密碼

    2. 在tomcat的conf文件中 username和password

    3. tomcatUrl :tomcat坐在地址的url

配置好上述以后,在構(gòu)建完畢后,就會把war包放在tomcat下面。


上述步驟結(jié)束后,手動構(gòu)建就能把包部署到tomcat上了。

接下來,如何實現(xiàn)提交代碼就能自動觸發(fā)部署呢? 即鉤子操作

配置【構(gòu)建觸發(fā)器】

  1. 觸發(fā)遠程構(gòu)建:格式參考下面的提示。

    1. 意思是按照這地址進行訪問,就能觸發(fā)構(gòu)建。
  2. 接下來就要思考怎么在linux中訪問這個地址

    1. 編寫腳本 :curl -X post -v -u jenkins用戶名 -p jenkins密碼 “http://jenkins服務(wù)器地址:端口/jenkins/job/[項目名稱]/bulid?token=[身份驗證令牌] "

    2. curl 用于linux系統(tǒng)發(fā)送http請求

    3. 全局安全配置中,有個【防止跨站點請求偽造】,如果這里勾選了的話,訪問構(gòu)建這個jenkins任務(wù)就要填寫crumb值

    4. 如何獲取crumb值:admin用戶,查看User Id和API Token

  3. 寫完這個腳本后,在linux先執(zhí)行一下,看看能不能觸發(fā)jenkins構(gòu)建

  4. 【svn】把編寫的腳本,放在git的commit類腳本中,讓git在提交后,就去執(zhí)行這個構(gòu)建地址

    1. 把git或者svn提供的tmpl文件,拷貝成腳本的形式: cp post-commit.tmpl post-commit.sh

    2. 把腳本放在post-commit.sh中

    3. 給post-commit.sh文件一個755的權(quán)限,保障可以執(zhí)行

  5. 【git】git —>setting —> Web Hook —> add webhook

測試:提交代碼和自動構(gòu)建和成果更新

流程測試。

遇到的問題:

1、盡快部署的版本總是比提交的版本晚一個版本,提交第二次的時候才能拿到第一次的提交結(jié)果:

  • 原因:服務(wù)器時間的影響

  • 解決:在源碼管理中 URL地址后面加上@HEAD,代表下載最新的版本

jenkins和GitHub結(jié)合的要點

  1. Jenkins要部署在外網(wǎng)上,內(nèi)網(wǎng)地址github是無法訪問的?;蛘遟ithub是公司的私服

  2. jenkins所在的主機上需要安裝git,通過git從github上clone代碼

  3. jenkins內(nèi)需要制定git的程序位置。(在JDK、Maven的設(shè)置那里)

  4. git上使用repository的WebHook方式遠程出發(fā)jenkins構(gòu)建。填個地址就行。

  5. 在jenkins內(nèi)關(guān)閉【防止跨站點請求偽造】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容