最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你如何用Jenkins自動(dòng)化部署項(xiàng)目(從零到搭建完成)

 更新時(shí)間:2020年10月07日 14:42:04   作者:龍之竹  
這篇文章主要介紹了教你如何用Jenkins自動(dòng)化部署項(xiàng)目(從零到搭建完成),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

      最近在實(shí)習(xí)中接觸了jenkins這個(gè)東西,所以花點(diǎn)時(shí)間了解了下。它可以在代碼上傳倉(cāng)庫(kù)(如github,gitee,gitlab)后,在jenkins(一個(gè)網(wǎng)站界面)中通過(guò)獲取代碼倉(cāng)庫(kù)中最新代碼,進(jìn)行自動(dòng)化部署,而省去手動(dòng)打包、上傳服務(wù)器、部署這一系列步驟,非常方便。

       下面教程分為以下幾個(gè)部分:

一、在你的本地電腦或者linux服務(wù)器上下載安裝jenkins:

jenkins下載地址:https://jenkins.io/   下載網(wǎng)站的war包版本就好了

下載完后把它部署到你的tomcat上運(yùn)行:放到tomcat的webapps目錄下,啟動(dòng)tomcat(windows下雙擊startup.bat或者linux下運(yùn)行sh startup.sh),然后通過(guò)瀏覽器訪(fǎng)問(wèn),如我的電腦上訪(fǎng)問(wèn):localhost:8080/jenkins 。啟動(dòng)后的界面如下:

然后到提示的文件中把里面的文本復(fù)制出來(lái)填到管理員密碼中。

接著如果是在本地電腦跑,可能會(huì)出現(xiàn):該jenkins實(shí)例似乎已離線(xiàn) 提示,如果出現(xiàn),是因?yàn)楸镜豩ttps訪(fǎng)問(wèn)不了的原因。在瀏覽器中另打開(kāi)一個(gè)界面http://localhost:8080/pluginManager/advanced,把升級(jí)站點(diǎn)中的url中的https改為http,保存更新。然后關(guān)掉tomcat服務(wù)器重啟,就可以聯(lián)網(wǎng)了。

        接下來(lái)選擇安裝推薦的插件,這個(gè)需要一定的時(shí)間。最后額外推薦安裝兩個(gè)插件,在系統(tǒng)管理中可以安裝插件:

1、 Rebuilder

2、 Safe Restart

二、在linux服務(wù)器中安裝git, maven,創(chuàng)建一個(gè)jenkens目錄,配置git的公鑰到你的github上,這些步驟是使用jenkins的前提。

     安裝git的目的是在自動(dòng)化部署前實(shí)時(shí)從git遠(yuǎn)程倉(cāng)庫(kù)中拉取最新的代碼。在linux(我用的是centos系統(tǒng))安裝git:

yum install git

    生成密鑰:

ssh-keygen -t rsa -C youremail@abc.com

    可以不設(shè)置密鑰密碼直接按三次回車(chē)。 把家目錄中生成的公鑰內(nèi)容復(fù)制到github或其他倉(cāng)庫(kù)上。    

    安裝maven的目的是通過(guò)項(xiàng)目中的pom.xml文件自動(dòng)解決項(xiàng)目依賴(lài)問(wèn)題,構(gòu)建項(xiàng)目。linux中通過(guò)wget+下載鏈接下載maven的zip包然后解壓即可。配置maven環(huán)境變量:

ssh-keygen -t rsa -C youremail@abc.com

    創(chuàng)建jenkins目錄,用來(lái)存儲(chǔ)拉取下來(lái)的項(xiàng)目代碼等。

三、將Linux服務(wù)器注冊(cè)到Jenkins上

1、開(kāi)啟服務(wù)器上的ssh服務(wù),可通過(guò) netstat -anp | grep :22命令查看是否開(kāi)啟

2、先來(lái)測(cè)試一下怎么在jenkins中操作遠(yuǎn)程服務(wù)器

在jenkins中選擇系統(tǒng)管理——》新建節(jié)點(diǎn)

其中遠(yuǎn)程工作目錄即你在Linux上創(chuàng)建的jenkins目錄。在Credentials添加一個(gè)遠(yuǎn)程用戶(hù),輸入你的遠(yuǎn)程機(jī)器用戶(hù)名和密碼保存。

點(diǎn)擊TestEnv,啟動(dòng)代理。

在全局工具配置中配置git命令:

3、自動(dòng)化部署過(guò)程原理:

所以需要編寫(xiě)一個(gè)shell腳本來(lái)執(zhí)行這個(gè)過(guò)程。

具體的創(chuàng)建Jenkins任務(wù)的過(guò)程為

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

2.填寫(xiě)Server信息

3.配置git參數(shù)

4.填寫(xiě)構(gòu)建語(yǔ)句(shell腳本),實(shí)現(xiàn)自動(dòng)部署。

四、創(chuàng)建自動(dòng)化部署任務(wù)

1、編寫(xiě)shell部署腳本deploy.sh,并放到linux服務(wù)器中的jenkins目錄下,在該目錄下通過(guò)touch deploy.sh創(chuàng)建一個(gè)腳本,把下面的腳本復(fù)制到里面即可(到時(shí)每次自動(dòng)部署都會(huì)執(zhí)行它),腳本中的my-scrum為我要自動(dòng)構(gòu)建的項(xiàng)目名:

#!/usr/bin/env bash
#編譯+部署項(xiàng)目站點(diǎn)

#需要配置如下參數(shù)
# 項(xiàng)目路徑, 在Execute Shell中配置項(xiàng)目路徑, pwd 就可以獲得該項(xiàng)目路徑
# export PROJ_PATH=這個(gè)jenkins任務(wù)在部署機(jī)器上的路徑

# 輸入你的環(huán)境上tomcat的全路徑
# export TOMCAT_APP_PATH=tomcat在部署機(jī)器上的路徑

### base 函數(shù)
killTomcat()
{
  #pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
  #echo "tomcat Id list :$pid"
  #if [ "$pid" = "" ]
  #then
  # echo "no tomcat pid alive"
  #else
  # kill -9 $pid
  #fi
  #上面注釋的或者下面的
  cd $TOMCAT_APP_PATH/bin
  sh shutdown.sh
}
cd $PROJ_PATH/my-scrum
mvn clean install

# 停tomcat
killTomcat

# 刪除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/ROOT
rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
rm -f $TOMCAT_APP_PATH/webapps/my-scrum.war

# 復(fù)制新的工程到tomcat上
cp $PROJ_PATH/scrum/target/order.war $TOMCAT_APP_PATH/webapps/

cd $TOMCAT_APP_PATH/webapps/
mv my-scrum.war ROOT.war

# 啟動(dòng)Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh

2、在jenkins上點(diǎn)擊新建一個(gè)任務(wù),填好任務(wù)名,填寫(xiě)運(yùn)行的節(jié)點(diǎn)(上文中新建節(jié)點(diǎn)時(shí)創(chuàng)建的):

3、點(diǎn)擊源碼管理,填寫(xiě)github(或gitlab等)地址:

4、點(diǎn)擊add,選擇check out to a sub-directory ,添加源碼下載到j(luò)enkins目錄下的指定目錄(可以命名為你的項(xiàng)目名):


5、填寫(xiě)構(gòu)建任務(wù)時(shí)的shell腳本,然后保存,點(diǎn)擊立即構(gòu)建完成自動(dòng)構(gòu)建。(這里有一個(gè)坑,一定要給tomcat下所有sh文件加上x(chóng)權(quán)限才能啟動(dòng)tomcat成功,具體為在tomcat目錄上層執(zhí)行chmod a+x  -R tomcat目錄或者在tomcat的bin目錄下執(zhí)行chmod +x *.sh)

#當(dāng)jenkins進(jìn)程結(jié)束后新開(kāi)的tomcat進(jìn)程不被殺死
BUILD_ID=DONTKILLME
#加載變量
. /etc/profile
#配置運(yùn)行參數(shù)

#PROJ_PATH為設(shè)置的jenkins目錄的執(zhí)行任務(wù)目錄
export PROJ_PATH=`pwd`
#配置tomcat所在目錄
export TOMCAT_APP_PATH=/root/tomcats/tomcat-my-scrum

#執(zhí)行寫(xiě)好的自動(dòng)化部署腳本
sh /root/jenkins/deploy.sh

6、自動(dòng)化構(gòu)建成功:

7、后續(xù)代碼如果有改動(dòng),只要push到github或者gitlab等上,在jenkins界面中再次執(zhí)行構(gòu)建任務(wù)就可以了,非常方便,自動(dòng)化部署,再也不用手動(dòng)上傳項(xiàng)目到服務(wù)器了。

五、解決一個(gè)tomcat關(guān)閉,所有tomcat都被關(guān)閉了的問(wèn)題(如果你的jenkins也是安裝的服務(wù)器上的其中一個(gè)tomcat中,就可能被莫名殺掉)

       這是因?yàn)樗械膖omcat的關(guān)閉腳本(shutdown.sh或者說(shuō)catalina.sh)都默認(rèn)監(jiān)聽(tīng)的是8005端口。只要進(jìn)去tomcat目錄下的conf目錄下的server.xml文件中,將

<Server port="8005" shutdown="SHUTDOWN">
 <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 <!-- Security listener. Documentation at /docs/config/listeners.html
 <Listener className="org.apache.catalina.security.SecurityListener" />
 -->

中的8005端口改為不同的端口,就不會(huì)一個(gè)tomcat關(guān)閉,所有的tomcat都被關(guān)閉了

六、以后可以在linux服務(wù)器中安裝多個(gè)tomcat,來(lái)部署不同的項(xiàng)目,分別使用不同的端口,如我喜歡用8081,8082,8083等端口來(lái)解決多個(gè)tomcat端口沖突問(wèn)題(在tomcat的conf目錄下的server.xml中修改即可,默認(rèn)為8080)。然后可以用jenkins來(lái)管理這些tomcat的自動(dòng)化部署啦。

到此這篇關(guān)于教你如何用Jenkins自動(dòng)化部署項(xiàng)目(從零到搭建完成)的文章就介紹到這了,更多相關(guān)Jenkins自動(dòng)化部署項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何把第三方服務(wù)注冊(cè)到spring項(xiàng)目容器中

    如何把第三方服務(wù)注冊(cè)到spring項(xiàng)目容器中

    這篇文章主要為大家介紹了如何把第三方服務(wù)注冊(cè)到spring項(xiàng)目容器中,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java中文件的讀寫(xiě)方法之IO流詳解

    Java中文件的讀寫(xiě)方法之IO流詳解

    這篇文章主要介紹了Java中文件的讀寫(xiě)方法之IO流詳解,本文中的代碼所涉及到的路徑或者文件都是本人的,大家得換成自己的,并且大家可以在網(wǎng)上自行找一些材料作為讀入或者寫(xiě)入的材料,不過(guò)路徑最好是英文的,不要包含中文,防止JVM讀取失敗
    2022-04-04
  • java基礎(chǔ)檢查和未檢查異常處理詳解

    java基礎(chǔ)檢查和未檢查異常處理詳解

    這篇文章介紹了java基礎(chǔ)中異常的處理,主要講解了java檢查和未檢查異常處理的示例詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Java源碼解析之HashMap的put、resize方法詳解

    Java源碼解析之HashMap的put、resize方法詳解

    這篇文章主要介紹了Java源碼解析之HashMap的put、resize方法詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-04-04
  • IntelliJ?IDEA?2020.2.3永久破解激活教程(親測(cè)有效)

    IntelliJ?IDEA?2020.2.3永久破解激活教程(親測(cè)有效)

    intellij?idea?2022是一款市面上最好的JAVA?IDE編程工具,該工具支持git、svn、github等版本控制工具,整合了智能代碼助手、代碼自動(dòng)提示等功能,本教程給大家分享IDEA?2022最新永久激活碼,感興趣的朋友參考下吧
    2020-10-10
  • JavaWeb如何實(shí)現(xiàn)限制單個(gè)賬號(hào)多處登錄

    JavaWeb如何實(shí)現(xiàn)限制單個(gè)賬號(hào)多處登錄

    這篇文章主要介紹了JavaWeb如何實(shí)現(xiàn)限制單個(gè)賬號(hào)多處登錄問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java?常量池詳解之class文件常量池?和class運(yùn)行時(shí)常量池

    Java?常量池詳解之class文件常量池?和class運(yùn)行時(shí)常量池

    這篇文章主要介紹了Java?常量池詳解之class文件常量池?和class運(yùn)行時(shí)常量池,常量池主要存放兩大類(lèi)常量:字面量,符號(hào)引用,本文結(jié)合示例代碼對(duì)java class常量池相關(guān)知識(shí)介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • java dom4j解析xml文件代碼實(shí)例分享

    java dom4j解析xml文件代碼實(shí)例分享

    這篇文章主要介紹了java dom4j解析xml文件的方法,分享給大家參考
    2013-12-12
  • mybatis-plus中BaseMapper入門(mén)使用

    mybatis-plus中BaseMapper入門(mén)使用

    本文主要介紹了mybatis-plus中BaseMapper入門(mén)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 基于Java子線(xiàn)程中的異常處理方法(通用)

    基于Java子線(xiàn)程中的異常處理方法(通用)

    下面小編就為大家?guī)?lái)一篇基于Java子線(xiàn)程中的異常處理方法(通用)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09

最新評(píng)論

英吉沙县| 全椒县| 萨迦县| 锡林浩特市| 册亨县| 三亚市| 正宁县| 临清市| 英德市| 宁阳县| 潞西市| 东辽县| 桦川县| 北碚区| 康定县| 乌拉特后旗| 威海市| 墨竹工卡县| 剑阁县| 南部县| 宿松县| 刚察县| 德格县| 公安县| 余姚市| 益阳市| 汉沽区| 阿拉善盟| 尉氏县| 无极县| 金川县| 区。| 宽城| 富蕴县| 涟源市| 隆安县| 彭泽县| 林芝县| 南漳县| 昌江| 炉霍县|