<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          小伙伴想學(xué)Jenkins自動(dòng)構(gòu)建發(fā)布項(xiàng)目,我:安排上了!!

          共 4326字,需瀏覽 9分鐘

           ·

          2020-10-20 19:56



          作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。自開(kāi)源半年多以來(lái),已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時(shí)調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗(yàn)。為使更多童鞋受益,現(xiàn)給出開(kāi)源框架地址:

          https://github.com/sunshinelyz/mykit-delay

          PS: 歡迎各位Star源碼,也可以pr你牛逼哄哄的代碼。? ? ??

          寫(xiě)在前面

          趁著十一長(zhǎng)假,很多小伙伴都在悄悄學(xué)習(xí),有些是為了能夠順利通過(guò)面試,進(jìn)入大廠(chǎng)升職加薪。有些則是為了進(jìn)一步鞏固和提高自己的專(zhuān)業(yè)技能,希望有朝一日能過(guò)成為互聯(lián)網(wǎng)架構(gòu)師乃至技術(shù)專(zhuān)家。這不,就有小伙伴問(wèn)我:如何通過(guò)Jenkins自動(dòng)構(gòu)建和發(fā)布項(xiàng)目,我:安排上了??!

          小伙伴的疑問(wèn)

          我們還是通過(guò)一張圖來(lái)直觀的了解下小伙伴的疑問(wèn)吧。

          老規(guī)則,我們直接進(jìn)入正題。

          基礎(chǔ)環(huán)境

          所有的環(huán)境均搭建在CentOS 6.5 x64服務(wù)器上,IP:192.168.209.121 主機(jī)名:liuyazhuang121 , 并在服務(wù)器上配置了主機(jī)名到IP的映射。

          構(gòu)建Web項(xiàng)目

          環(huán)境配置

          首先,我們來(lái)看下如何通過(guò)Jenkins自動(dòng)構(gòu)建發(fā)布Web項(xiàng)目到遠(yuǎn)程Tomcat。我們使用的環(huán)境是:Jdk1.8+Maven3.6.3+Tomcat9.0+Jenkins2.19.3+SSH+Shell

          其中,JDK、Maven和Tomcat小伙伴們可以自行下載安裝并配置系統(tǒng)環(huán)境,可以到鏈接http://download.csdn.net/download/l1028386804/10127368 下載jenkins2.19.3。

          配置SSH免密碼登錄

          ssh-keygen?-t?rsa
          cp?~/.ssh/id_rsa.pub?~/.ssh/authorized_keys/

          配置Jenkins

          啟動(dòng)Jenkins

          下載的Jenkins war包拷貝到${TOMCAT_HOME}/webapp目錄下,并啟動(dòng)Tomcat,在瀏覽器中輸入http://192.168.209.121:8080/jenkins,如下圖所示,則證明Jenkins啟動(dòng)成功。

          安裝插件

          上述默認(rèn)安裝的插件還不夠

          依次點(diǎn)擊 系統(tǒng)管理->插件管理-> 可選插件-> 過(guò)濾搜索框中 查找如下插件:

          • Maven Integration plugin
          • SSH plugin
          • Deploy to container Plugin

          設(shè)置系統(tǒng)管理-Global Tool Configuration

          在系統(tǒng)管理-Global Tool Configuration中配置JDK和Maven,如下:

          配置系統(tǒng)管理-Configure Global Security

          注冊(cè)并登錄用戶(hù)

          配置SSH remote hosts

          在系統(tǒng)管理-系統(tǒng)設(shè)置,配置SSH remote hosts

          點(diǎn)擊Add按鈕設(shè)置登錄方式,如下圖所示:

          點(diǎn)擊Check connection按鈕 ,如果頁(yè)面上輸出Successfull connection,則SSH配置成功,如下圖所示:

          新建項(xiàng)目構(gòu)建

          配置項(xiàng)目構(gòu)建

          General-配置項(xiàng)目名稱(chēng)

          源碼管理-配置SVN信息

          配置Pre Steps

          配置Post Steps

          配置完成后保存。

          構(gòu)建項(xiàng)目

          回到主頁(yè),點(diǎn)擊立即構(gòu)建項(xiàng)目按鈕,如下圖:

          可看到頁(yè)面上出現(xiàn)對(duì)maven_test的構(gòu)建進(jìn)度條,點(diǎn)擊進(jìn)度條即可進(jìn)入日志輸出頁(yè)面,如下圖:

          輸出如下日志,則代表構(gòu)建并部署到tomcat成功。

          tomcat.sh腳本

          最后,我們給出tomcat.sh腳本的內(nèi)容,如下所示。

          #!/bin/sh??
          ??

          ##?java?env??
          ##?service?name????
          SERVICE_NAME=tomcat_service??

          case?"$1"?in??
          ??
          ????start)??
          ?????????/usr/local/tomcat/test-tomcat-10000/bin/startup.sh?
          ????????;;??
          ??
          ????stop)??
          ????????sleep?5??
          ????????##??
          ????????##?edu-service-aa.jar??
          ????????##?edu-service-aa-bb.jar??
          ????????P_ID=`ps?-ef?|?grep?-w?"test-tomcat-10000"?|?grep?-v?"grep"?|?awk?'{print?$2}'`??
          ????????if?[?"$P_ID"?==?""?];?then??
          ????????????echo?"===?$SERVICE_NAME?process?not?exists?or?stop?success"??
          ????????else??
          ????????????echo?"===?$SERVICE_NAME?process?pid?is:$P_ID"??
          ????????????echo?"===?begin?kill?$SERVICE_NAME?process,?pid?is:$P_ID"??
          ????????????kill??$P_ID??
          ????????fi??
          ????????;;??
          ??
          ????restart)??
          ????????$0?stop??
          ????????sleep?2??
          ????????$0?start??
          ????????echo?"===?restart?$SERVICE_NAME"??
          ????????;;??
          ??
          ????*)??
          ????????##?restart??
          ????????$0?stop??
          ????????sleep?2??
          ????????$0?start??
          ????????;;??
          ??
          esac??
          exit?0?

          構(gòu)建Java項(xiàng)目

          Jenkins構(gòu)建Jar包發(fā)布到遠(yuǎn)程服務(wù)器和構(gòu)建War包發(fā)布到遠(yuǎn)程服務(wù)器配置基本一致,只是Post Steps配置稍有不同。

          配置Post Steps

          配置Jar包發(fā)布到遠(yuǎn)程服務(wù)器的Post Steps配置如下:

          構(gòu)建項(xiàng)目

          account-server.sh腳本

          最后,我們也給出account-server.sh腳本的內(nèi)容,如下所示。

          #!/bin/sh??
          ??

          ##?java?env??
          export?JAVA_HOME=/usr/local/jdk/jdk1.8.0_144??
          export?JRE_HOME=$JAVA_HOME/jre??
          ??
          ##?service?name??
          APP_NAME=account??
          ??
          SERVICE_DIR=/usr/local/dubbo-server/$APP_NAME??
          SERVICE_NAME=medcare-dubbo-$APP_NAME??
          JAR_NAME=$SERVICE_NAME\.jar??
          PID=$SERVICE_NAME\.pid??
          ??
          cd?$SERVICE_DIR??
          ??
          case?"$1"?in??
          ??
          ????start)??
          ????????nohup?$JRE_HOME/bin/java?-Xms256m?-Xmx512m?-jar?$JAR_NAME?>/dev/null?2>&1?&??
          ????????echo?$!?>?$SERVICE_DIR/$PID??
          ????????echo?"===?start?$SERVICE_NAME"??
          ????????;;??
          ??
          ????stop)??
          ????????kill?`cat?$SERVICE_DIR/$PID`??
          ????????rm?-rf?$SERVICE_DIR/$PID??
          ????????echo?"===?stop?$SERVICE_NAME"??
          ??
          ????????sleep?5??
          ????????##??
          ????????##?edu-service-aa.jar??
          ????????##?edu-service-aa-bb.jar??
          ????????P_ID=`ps?-ef?|?grep?-w?"$SERVICE_NAME"?|?grep?-v?"grep"?|?awk?'{print?$2}'`??
          ????????if?[?"$P_ID"?==?""?];?then??
          ????????????echo?"===?$SERVICE_NAME?process?not?exists?or?stop?success"??
          ????????else??
          ????????????echo?"===?$SERVICE_NAME?process?pid?is:$P_ID"??
          ????????????echo?"===?begin?kill?$SERVICE_NAME?process,?pid?is:$P_ID"??
          ????????????kill?-9?$P_ID??
          ????????fi??
          ????????;;??
          ??
          ????restart)??
          ????????$0?stop??
          ????????sleep?2??
          ????????$0?start??
          ????????echo?"===?restart?$SERVICE_NAME"??
          ????????;;??
          ??
          ????*)??
          ????????##?restart??
          ????????$0?stop??
          ????????sleep?2??
          ????????$0?start??
          ????????;;??
          ??
          esac??
          exit?0??

          往期精彩回顧




          【推薦】.NET Core開(kāi)發(fā)實(shí)戰(zhàn)視頻課程?★★★

          .NET Core實(shí)戰(zhàn)項(xiàng)目之CMS 第一章 入門(mén)篇-開(kāi)篇及總體規(guī)劃

          【.NET Core微服務(wù)實(shí)戰(zhàn)-統(tǒng)一身份認(rèn)證】開(kāi)篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個(gè)接口多種實(shí)現(xiàn)的依賴(lài)注入與動(dòng)態(tài)選擇看這篇就夠了

          10個(gè)小技巧助您寫(xiě)出高性能的ASP.NET Core代碼

          用abp vNext快速開(kāi)發(fā)Quartz.NET定時(shí)任務(wù)管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實(shí)現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說(shuō)法:實(shí)際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢(xún)優(yōu)化

          關(guān)于C#異步編程你應(yīng)該了解的幾點(diǎn)建議

          C#異步編程看這篇就夠了


          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲中文无字幕 | 蜜桃91精品秘 入口内裤 | 在线天堂视频 | 自拍偷拍激情网 | 播播影院在线特别黄色视频看看你 |