說明:Jenkins是部署在自己的電腦上的(windows系統(tǒng)),代碼是在git上辑莫,測試環(huán)境是Linux系統(tǒng)
過程:
①使用Jenkins從git上拉取最新代碼
②拉取代碼后打包
③打包后發(fā)布到測試環(huán)境
④發(fā)布到測試環(huán)境后啟動(dòng)服務(wù)
1、Jenkins和JDK工具(在百度云中,本次使用的版本如下)
另外還需要git和Maven(在百度云中)
Jenkins下載地址:https://www.jenkins.io/
百度云:https://pan.baidu.com/s/1Au1nb6bkqMGa2T-fpMwzYg 提取碼:69pz
JDK版本:1.8
Jenkins版本:2.303.3
注意:JDK和Maven需要配置環(huán)境變量
2园细、安裝Jenkins
①打開終端->進(jìn)入Jenkins目錄下->輸入命令:java -jar jenkins.war --httpPort=8080
②在瀏覽器中輸入localhost:8080->打開Jenkins登錄頁面
③輸入密碼->安裝默認(rèn)的插件(不安裝也可以,后期也可以安裝)->進(jìn)入Jenkins主頁
3接校、安裝Jenkins插件
Manager Jenkins->Manager Plugins,進(jìn)入插件管理頁面猛频。在其他頁面配置時(shí)如果缺少選項(xiàng),需要先在這里安裝插件
Manager Jenkins配置管理頁面
Manager Plugins插件管理頁面
安裝插件時(shí)會報(bào)錯(cuò):
將https改為http,重啟Jenkins服務(wù)蛛勉,然后去安裝插件鹿寻,安裝時(shí)總是下載失敗,多安裝幾次試試诽凌,或者使用不同的鏡像地址安裝毡熏,我安裝時(shí)也是一直失敗,換了好幾個(gè)鏡像地址侣诵,其中有一個(gè)鏡像安裝成功了一部分痢法,我又把地址改為了當(dāng)前的http://updates.jenkins.io/update-center.json,第二天來了安裝又可以了
安裝Jenkin插件的兩種方式:
①直接下載杜顺,Manager Jenkins->Manager Plugins->Available->選中插件安裝
②下載插件到本地财搁,然后導(dǎo)入到插件管理中Manager Jenkins->Manager Plugins->Advanced->Upload Plugin->選擇下載到本地的插件安裝
插件下載地址:http://updates.jenkins-ci.org/download/plugins/
4、配置Jenkins
①配置全局變量 Manager Jenkins->Global Tool Configuration
配置Maven
配置JDK
配置Git
配置Maven
②配置憑證
添加git憑證:Manager Jenkins->Manager Credentials->golbal->Add Credentials
③配置SSH躬络,Manager Jenkins->Configure System->Publish over SSH->SSH Servers
測試linux地址:在windows下通過ssh命令鏈接linux尖奔,# ssh root@ip,回車輸入密碼即可
5洗鸵、創(chuàng)建項(xiàng)目
①新增項(xiàng)目
②配置項(xiàng)目越锈,
配置General
配置Source Code Management
配置Build Triggers 和 Build Environment
配置Build
Goals: clean package -D maven.test.skip=true -P product,清class文件膘滨,打包構(gòu)建甘凭,跳過測試,注意最后一個(gè) -P product
配置完bilid后就可以立即構(gòu)建了火邓,會將代碼拉取到本地并打包
生成的路徑:C:\ProgramData\Jenkins\.jenkins\workspace\項(xiàng)目名稱
配置Post-build Actions
配置完P(guān)ost-build Actions丹弱,就能將本地的包上傳到Linux服務(wù)器了,并可以啟動(dòng)服務(wù)
??啟動(dòng)服務(wù)的命令一直不對铲咨,找了好久才找正確躲胳,不太清楚原因,使用最后一行直接在linux上啟動(dòng)是成功的纤勒,放到Jenkins中一直失敗坯苹,出現(xiàn)了5個(gè)情況,第一個(gè)情況是分支代碼上傳錯(cuò)誤摇天,可先在linux上驗(yàn)證一下命令是否正確粹湃;第二情況是內(nèi)存不夠了恐仑,清理沒用的日志;第三種情況为鳄,加上source /etc/profile裳仆,第四種情況,加上BUILD_ID=dontKillMe孤钦,第五種情況使用PIDS=`ps -ef | grep admin.jar | grep -v grep | awk '{print $2}'` for pid in $PIDS;do kill -9 $pid;done
source /etc/profile
BUILD_ID=dontKillMe
PIDS=`ps -ef | grep admin.jar | grep -v grep | awk '{print $2}'`
for pid in $PIDS;do kill -9 $pid;done
nohup java -jar -Xms120M -Xmx180M /opt/test/admin.jar >/opt/test/out &
6歧斟、Build Now立即構(gòu)建
進(jìn)入項(xiàng)目下->Build Now->Console Output
??構(gòu)建成功并啟動(dòng)項(xiàng)目驗(yàn)證一下就OK了,到此一個(gè)非常簡單的部署就完成了偏形。
??在這里如果命令執(zhí)行失敗了不會在Jenkins日志里面體現(xiàn)出來静袖,可以先到Linux服務(wù)器上執(zhí)行一下命令看是否正確
??立即構(gòu)建出現(xiàn)了一種情況,就是構(gòu)建過程中取消了構(gòu)建壳猜,然后Jenkins服務(wù)就掛了勾徽,通過瀏覽器啟動(dòng)不了,就直接執(zhí)行了java -jar jenkins.war统扳,登錄后發(fā)現(xiàn)項(xiàng)目全部都丟失了,解決方法見7
7畅姊、啟動(dòng)Jenkins
①命令:java -jar jenkins.war
②命令:net start jenkins
③瀏覽器中輸入:http://localhost:8080/restart
??使用命令java -jar jenkins.war啟動(dòng)咒钟,該方式以系統(tǒng)的java_home路徑中的java程序來執(zhí)行的,以web容器來啟動(dòng)若未。默認(rèn)路徑為在用戶的目錄生成.Jenkins目錄作為默認(rèn)工作目錄【C:\Users\Administrator\.jenkins】
??使用命令net start jenkins啟動(dòng)朱嘴,該啟動(dòng)方式以Jenkins.exe作為宿主涌攻,采用windows服務(wù)的方式啟動(dòng)振愿。 默認(rèn)路徑為由jenkins.xml配置中"JENKINS_HOME"所決定的,默認(rèn)的工作目錄是%ProgramData%\Jenkins\.jenkins【C:\ProgramData\Jenkins\.jenkins】腰池。
??使用前兩種方式啟動(dòng)出現(xiàn)的問題:由于當(dāng)時(shí)服務(wù)中斷使用了兩種不同的方式啟動(dòng)隙疚,導(dǎo)致出現(xiàn)了以上兩個(gè)路徑壤追,且路徑中都有登錄密碼,但兩個(gè)密碼是不一樣的供屉,其中一個(gè)密碼可以登錄行冰,另一個(gè)不可以登錄,登錄后發(fā)現(xiàn)之前創(chuàng)建的項(xiàng)目都沒了伶丐,考慮是不同的密碼導(dǎo)致的悼做,將密碼改為相同的以后,在“任務(wù)管理器”中啟動(dòng)服務(wù)可以登錄成功了哗魂,所以為了避免出現(xiàn)這個(gè)問題肛走,最好將兩個(gè)啟動(dòng)方式生成的目錄配置成一致
8、關(guān)閉jenkins
命令:stop start jenkins
瀏覽器中輸入:http://localhost:8080/stop
發(fā)布和回滾見:Jenkins在windows環(huán)境發(fā)布录别,回滾
參考:
Jenkins手冊:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/
Jenkins頁面介紹:https://blog.csdn.net/weixin_57720070/article/details/117981109
Jenkins安裝朽色、部署:https://www.cnblogs.com/lukelook/p/11221585.html
Jenkins插件安裝:https://www.cnblogs.com/channy14/p/11556799.html
Jenkins啟動(dòng):https://blog.csdn.net/xiangqiang2015/article/details/84583375
Maven構(gòu)建工具介紹:https://www.cnblogs.com/Yalena/p/7019552.html