日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目

發布時間:2023/11/30 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前提

插件:Maven Integration plugin

環境:

maven、tomcat

用的博客系統代碼:

git clone https://github.com/b3log/solo.git

遠端git服務器:

[git@git repos]$ mkdir -p solo [git@git repos]$ cd solo/ [git@git solo]$ git --bare init Initialized empty Git repository in /home/git/repos/solo/

本地web:

[root@web solo]# git remote -v origin git@172.16.1.3:/home/git/repos/solo (fetch) origin git@172.16.1.3:/home/git/repos/solo (push) [root@web solo]# git remote rm origin [root@web solo]# git init Reinitialized existing Git repository in /root/solo/.git/ [root@web solo]# git remote add origin git@172.16.1.3:/home/git/repos/solo [root@web solo]# git add . [root@web solo]# git commit -m "java solo all" # On branch master nothing to commit, working directory clean [root@web solo]# git push origin master Counting objects: 29058, done. Compressing objects: 100% (9854/9854), done. Writing objects: 100% (29058/29058), 47.77 MiB | 39.28 MiB/s, done. Total 29058 (delta 15768), reused 29058 (delta 15768) To git@172.16.1.3:/home/git/repos/solo* [new branch] master -> master

因為solo需要改如下配置才可以訪問:(改serverhost為指定的域名)

vim /root/solo/src/main/resources/latke.properties

然后再重新提交上去

二、配置

1)新建job

2)參數化構建

3)配置git倉庫(針對jenkinsfile)

三、編寫Jenkinsfile

源碼配置文件:

node ("slave02-172.16.1.3") {//def mvnHome = '/usr/local/maven'stage('git checkout') {checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@172.16.1.3:/home/git/repos/solo']]])}stage('maven build') {sh '''export JAVA_HOME=/usr/local/jdk1.8/usr/local/maven3.3/bin/mvn clean package -Dmaven.test.skip=true''' }stage('deploy') {sh ''' JENKINS_NODE_COOKIE=dontkillmeexport JAVA_HOME=/usr/local/jdk1.8TOMCAT_NAME=tomcatTOMCAT_HOME=/application/$TOMCAT_NAMEWWWROOT=$TOMCAT_HOME/webapps/ROOTif [ -d $WWWROOT ]; thenmv $WWWROOT /data/backup/${TOMCAT_NAME}-$(date +"%F_%T")fiunzip ${WORKSPACE}/target/*.war -d $WWWROOTPID=$(ps -ef |grep $TOMCAT_NAME |egrep -v "grep|$$" |awk \'{print $2}\')[ -n "$PID" ] && kill -9 $PID/bin/bash $TOMCAT_HOME/bin/startup.sh'''}stage('test') {//sh "curl http://solo.test.com/status.html"echo "test ok!!!!!!!"} }

下面為帶解釋版,但不可以使用,部分注釋會造成問題

node ("slave02-172.16.1.3") { //綁定到該節點構建//def mvnHome = '/usr/local/maven'stage('git checkout') { //拉代碼checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@172.16.1.3:/home/git/repos/solo']]])}stage('maven build') { //maven buildsh '''export JAVA_HOME=/usr/local/jdk1.8 //在指定java環境變量/usr/local/maven3.3/bin/mvn clean package -Dmaven.test.skip=true''' //構建maven包 clean package表示構建之前會清理之前構建的包,-Dmaven.test.skip=true表示跳過單元測試 }stage('deploy') { //部署sh ''' JENKINS_NODE_COOKIE=dontkillme #tomcat啟動時會衍生出一些子進程,然后才能成功啟動,但是jenkins會在構建結束殺掉tomcat的那些衍生子進程,造成tomcat啟動失敗,此處加上這個參數可以解決這個問題。 export JAVA_HOME=/usr/local/jdk1.8TOMCAT_NAME=tomcatTOMCAT_HOME=/usr/local/$TOMCAT_NAMEWWWROOT=$TOMCAT_HOME/webapps/ROOTif [ -d $WWWROOT ]; then //如果目錄存在,先備份mv $WWWROOT /data/backup/${TOMCAT_NAME}-$(date +"%F_%T")fiunzip ${WORKSPACE}/target/*.war -d $WWWROOT //項目包解壓到站點目錄PID=$(ps -ef |grep $TOMCAT_NAME |egrep -v "grep|$$" |awk \'{print $2}\') //重啟tomcat[ -n "$PID" ] && kill -9 $PID/bin/bash $TOMCAT_HOME/bin/startup.sh'''}stage('test') { //測試//sh "curl http://wp.test.com/status.html"echo "test ok!!!!!!!"} }

四、構建

五、訪問

轉載于:https://www.cnblogs.com/forever521Lee/p/9593855.html

總結

以上是生活随笔為你收集整理的Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。