Jenkins部署碼雲SpringBoot專案
本文介紹jenkins如何從gitee上clone專案,然後使用maven打包並後臺啟動。
1.Jenkins介紹

Jenkins是一個開源軟體專案,是基於Java開發的一種持續整合工具,用於監控持續重複的工作,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。 (以上介紹來源於百度百科)
其實通俗來說,Jenkins就是一個自動化部署專案的工具,幫我省去重複的運維工作。
2.環境準備
本文需要如下幾個工具:
- JDK

- Git

- Maven

以上三種就不在這裡介紹安裝了,這裡我貼出我的環境變數配置僅供參考:

- Jenkins
我的Jenkins是使用如下方式安裝:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
啟動
service jenkins start
然後訪問http://${ip}/8080,可以看到jenkins那個小老頭,根據自行配置安裝外掛,其中密碼在這裡
vi /var/lib/jenkins/secrets/initialAdminPassword
以上都在網上有很多,我在部落格中也寫過,就不在這裡廢話太多了。
3.Jenkins工具外掛配置
3.1 外掛配置
個人建議,Jenkins第一次進入推薦安裝的外掛就預設安裝就行,省的還需要後續自己安裝,當然,如果自己安裝的話需要Maven和Git外掛。
3.2 工具配置
- JDK

- Git

- Maven

這裡就可以用到上面環境準備時需要的截圖,這裡我也摸索了很久才配置完成。
4.配置專案
4.1 構建自由風格的專案
新建專案,選擇構建自由風格的專案,給專案起個名字,然後點選Ok。
4.2 配置引數化構建過程
這裡我用到了幾個引數,因為可能有時需要提前準備好引數在進行構建,如下圖:


- jar_path :本意是準備專案打包後的jar位置,其實這裡是Jenkins工作空間
- spring_profile:這個是讀取配置檔案字首,比如dev,test,prod
- jar_name:jar包名稱
- project_name:專案名稱
4.3 Git配置
用Git進行將專案Clone下來,配置自己的使用者密碼,Repository URL配置git地址(這裡提供的地址是私密專案,專案沒什麼特別的,就是簡單SpringBoot專案,不用嘗試了,用自己專案就可以)

4.4 配置Build
這裡選擇執行Shell,內容如下:
mvn clean install -Dmaven.test.skip=true
echo $spring_profile $jar_path $jar_name
cd /usr/local/shell/
./stop.sh $jar_name
echo "Execute shell Finish"
./startup.sh $spring_profile $jar_path $jar_name $project_name
如圖:

在上面執行的Shell裡面還用到了兩個Shell,分別是stop.sh,實質就是找到jar執行的pid,然後kill,具體內容如下:
jar_name=${1}
echo "Stopping" ${jar_name}
pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
startup.sh內容如下,具體可以根據情況修改:
spring_profile=${1}
jar_path=${2}
jar_name=${3}
project_name=${4}
cd ${jar_path}/${project_name}/target/
echo ${jar_path}/${project_name}/target/
echo nohup java -jar ${jar_name} &
BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &
5 測試執行
5.1 執行
點選執行後,如圖所示,剛剛預配置的引數都可以看到並可以修改,這裡我們用預設配置好的就可以。

然後點選執行就可以,當時遇到了一個插曲,我的Maven是安裝成功的,但是Jenkins內無法使用,報錯mvn:command not found,這裡我解決的方式是將mvn命令也指向/usr/bin/mvn,如下:
ln -s /usr/local/apache-maven-3.5.4/bin/mvn /usr/bin/mvn
訪問效果其實就是我的部落格,如圖所示:

6 總結
總體過程坑其實還是很多的,畢竟沒有使用過,但是沒有什麼特別棘手的問題,總是出現不同的問題,有需要可以與我一起交流學習。
相關文章
- Jenkins自動化部署SpringBoot多模組專案JenkinsSpring Boot
- Jenkins部署Python專案實戰JenkinsPython
- Jenkins in Action :GitLab 部署 Maven 專案JenkinsGitlabMaven
- SpringBoot專案熱部署Spring Boot熱部署
- Docker部署SpringBoot專案DockerSpring Boot
- 雲伺服器啟動部署springboot的專案伺服器Spring Boot
- windows環境Jenkins部署前端專案WindowsJenkins前端
- SpringBoot 監控、專案部署Spring Boot
- springBoot專案部署整合阿里雲https證書報錯Spring Boot阿里HTTP
- SpringBoot專案部署到阿里雲伺服器全流程Spring Boot阿里伺服器
- Jenkins部署Web專案到遠端tomcatJenkinsWebTomcat
- 使用Jenkins自動化部署Java專案JenkinsJava
- jenkins自動化專案部署實戰Jenkins
- springboot 專案部署到外部tomcatSpring BootTomcat
- springboot專案部署到tomcat容器Spring BootTomcat
- 初學docker部署springboot專案DockerSpring Boot
- Docker(四)Docker部署SpringBoot專案DockerSpring Boot
- SpringBoot使用Docker快速部署專案Spring BootDocker
- Docker-Docker部署SpringBoot專案DockerSpring Boot
- 簡單使用 持續整合jenkins 快速部署springboot和vue專案(面向開發者)JenkinsSpring BootVue
- 使用jenkins進行前端專案自動部署Jenkins前端
- jenkins + GitHub 實現專案自動化部署JenkinsGithub
- 開發利器JRebel部署SpringBoot專案Spring Boot
- 使用Intellij IDEA快速部署SpringBoot專案到阿里雲伺服器IntelliJIdeaSpring Boot阿里伺服器
- 【SpringBoot】三十二、SpringBoot專案Jar包如何瘦身部署Spring BootJAR
- jenkins+gitlab+docker持續整合部署maven專案JenkinsGitlabDockerMaven
- 基於Jenkins自動化部署spring boot專案JenkinsSpring Boot
- 阿里雲部署nuxt專案阿里UX
- springboot部署到阿里雲,配置https,springboot專案同時支援http和https請求,阿里雲配置httpsSpring Boot阿里HTTP
- SpringBoot專案如何打包部署到tomcat中去Spring BootTomcat
- Springboot專案引入druid安裝部署使用Spring BootUI
- Springboot專案依賴jar分離部署Spring BootJAR
- Jenkins+Docker+Gitee+SpringBoot自動化部署JenkinsDockerGiteeSpring Boot
- 解放雙手 | Jenkins + gitlab + maven 自動打包部署專案JenkinsGitlabMaven
- GitLab+Jenkins自動化部署.Net專案-Windows版GitlabJenkinsWindows
- 手把手教你部署前端專案CI/CD Jenkins 篇前端Jenkins
- 阿里雲伺服器配置Jenkins自動打包部署vue專案(新手攻略第二彈)阿里伺服器JenkinsVue
- Jenkins部署SpringBoot應用到遠端伺服器JenkinsSpring Boot伺服器