Jenkins自動部署SpringBoot項目實踐教程
1、Jenkins安裝
下載jenkins安裝包,maven安裝包;打開xftp將安裝包上傳到服務器;弄maven鏡像:進入maven的conf文件夾,vim打開setting.xml文件添加阿里云鏡像;wq!保存退出。

<!-- 阿里鏡像倉庫 -->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>
http://maven.aliyun.com/nexus/content/groups/public/
</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
配置環(huán)境變量,打開/etc/profile文件,添加maven的環(huán)境變量;添加完成后記得執(zhí)行source /etc/profile使環(huán)境變量生效。添加配置如下:MAVEN_HOME改成自己maven的安裝目錄
MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
運行 mvn -v驗證maven是否安裝成功

進入jenkins安裝位置執(zhí)行:java -jar jenkins.war &;啟動;啟動不成功,如果是端口占用,可以使用如下命令修改端口號并啟動。執(zhí)行之后生成一個密碼,記下來
java -jar jenkins.war --ajp13Port=-1 --httpPort=8081 &
訪問jenkins;如果訪問不了,檢查有沒有在阿里云和寶塔開放上面使用端口的安全組;如果不用寶塔那么開發(fā)端口要使用命令:
firewall-cmd --zone=public --add-port=8081/tcp --permanent
訪問http://服務器ip:端口號;出現jenkins登錄頁面,使用第5步記住的密碼登錄。
2、Jenkins插件安裝
選擇系統管理,插件管理

安裝ssh插件,點擊可選插件,搜索Publish Over SSH插件,安裝Plublish Over SSH插件之前得先按照Infrastructure plugin for Publish Over X插件。否則報錯。


插件中搜索gitee,安裝插件。

搜索 Jackson 2 API 插件

搜索Java JSON Web Token (JJWT) 插件,Javadoc Plugin插件,JUnit Plugin

搜索Maven Integration plugin插件,找不到就去掉后面的plugin搜索

搜索 Publish Over SSH;SSH Build Agents plugin;SSH Credentials Plugin;SSH plugin;SSH2 Easy Plugin插件

插件在后面如果出現問題提示是插件出現問題,可以再百度一下缺少哪些插件再繼續(xù)安裝 3、Jenkins設置憑據 選擇系統管理,點擊Manage Gredentials,

點擊Jenkins

點擊全局憑據


3、點擊添加憑據
添加服務器憑據,填寫服務器登錄用戶名和密碼

添加gitee用戶憑據,填寫gitee賬號用戶名密碼添加gitee私人令牌的憑據,去gitee賬號添加私人令牌,獲取到私人令牌再添加憑據。

4、Jenkins環(huán)境配置
4.1、全局配置
選擇Manage Jenkins系統管理,選擇Global Tool Configuration全局工具配置進入配置java的一些配置環(huán)境

進入配置環(huán)境Maven和JDK并保存
這里的Maven選擇服務器中下載的maven的路徑,JDK選擇服務器安裝路徑,找不到JDK安裝路徑可以看這里服務器jdk安裝位置查詢步驟:

jdk取消自動安裝,選擇服務器中jdk的安裝地址


4.2、系統配置
返回選擇Manage Jenkins系統管理,選擇系統配置

Maven配置

jenkins URL配置

環(huán)境變量配置

SSH配置

Gitee配置

使用密鑰方式登錄目標發(fā)布服務器
輸入命令:ssh-keygen -t rsa回車;出現東西直接復制()里面的東西粘貼;回車;一直回車知道出現圖形。

進入 /root/.ssh文件夾下ls可以查看有三個東西,一個私鑰,一個公鑰,authorized_keys文件。使用命令:cat id_rsa.pub >> /root/.ssh/authorized_keys;文件將公鑰追加到authorized_keys文件中。

在系統配置中的Public over SSH上的Path to key寫上生成的ssh路徑::/root/.ssh/id_rsa

選擇Confing System,配置ssh服務,填寫下面信息

點擊Test之后如果出現錯誤以下錯誤,那么看看有沒有設置了憑據:

5、Jenkins自動部署SpringBoot項目
新建一個springboot項目,寫個demo測試可不可以運行,然后上傳到gitee上新建tiem(新建任務),在Jenkins中新建任務,選擇構建一個maven項目,然后確定

General設置Gitee項目鏈接

源碼管理,在git那里點擊高級,將+refs/heads/master:refs/remotes/origin/master +refs/pull/*/MERGE:refs/pull/*/MERGE 填入Refspec中

構建觸發(fā)器,構建環(huán)境

系統設置中的SSH remote hosts

設置Pre Steps,Build,Build點擊高級可以展開填寫如下信息


設置Post Steps


shart.sh文件內容如下:
/root/www/javaweb/project/testJenkis/demo-0.0.1-SNAPSHOT.jar是項目編譯后jar包出現在這里,jar命令是以項目的pom文件中的artifactId和version拼接起來的。
/root/www/javaweb/project/testJenkis/out.log是項目編譯后日志文件位置。
#!/bin/bash
source /etc/profile
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/java/jdk1.8.0_121 #你自己的jdk路徑
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export BUILD_ID=dontKillMe
echo " =====關閉Java應用======"
PROCESS=`ps -ef |grep java |grep -v grep|grep /root/www/javaweb/project/testJenkis/demo-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
for i in $PROCESS
do
echo "Kill the $1 process [ $i ]"
kill -9 $i
done
echo " =====啟動Java應用======"
nohup java -jar /root/www/javaweb/project/testJenkis/demo-0.0.1-SNAPSHOT.jar > /root/www/javaweb/project/testJenkis/out.log 2>&1 &
echo $! > savePid.txt
cat savePid.txt
rm savePid.txt
然后給start.sh文件授權,命令如下: 777代表可讀可寫可執(zhí)行
chmod -R 777 start.sh
應用保存任務設置點擊立即構建,

可以選擇控制臺輸出查看運行結果,如果出現錯誤,看提示修改,如果成功則可以訪問項目中設置的接口路徑。
6、遇到問題
1、重新啟動jenkins忘記了登錄密碼
1. cd /root/.jenkins/users命令進入users文件夾,查看該文件下是否有用戶文件夾,找到admin文件夾
2. 打開admin文件夾,發(fā)現里面有一個config.xml文件,打開改文件,找到passwordhash,可以先復制保存一下原來的passwordhash
3. 然后將passwordhash中的內容修改成如下內容并保存退出:`#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq`
4. 然后重啟jenkins,如果重啟失敗,可能端口占用,估計是之前啟動的jenkins還在運行,因此可以查看一下netstat -anp|grep 8081;端口是否占用,使用kill -9 進程id來殺死該進程。
5.然后重新之前啟動jenkins命令:java -jar jenkins.war -ajp13Port=-1 -httpPort=8081
6. 訪問jenkins使用123456密碼進行登錄。
7. 成功
2、 安裝ssh插件出現問題
選擇Manage Plugins ,可選插件,

下載ssh的時候出現以下錯誤

出現失敗的原因是要先安裝下面的插件,然后再安裝就不會出錯了。

3、構建項目出現如下錯誤:

在項目的pom.xml文件修改build為下面代碼:記得得上傳到gitee,或者直接在之前上傳到gitee的項目那里修改pom
<build>
<defaultGoal>compile</defaultGoal>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
4、點擊立即構建之后出現黃色,錯誤如下:

這個問題是找不到strat.sh的在哪里,仔細看看配置那里的構建后操作,一定要在根目錄下創(chuàng)建shart.sh文件,而且這里配置路徑的時候,要加上/root/不能直接www,否則就出現上面的錯誤。

5、如果編譯成功,但是沒有jar文件出現在服務器指定位置,查看out.log內容發(fā)現

然后試著修改指定jar位置的路徑
修改前:

修改后:

jar是放在root目錄下的www下,但是這里配置的時候不需要加上root,只有start.sh就必須要加上root,否則出錯
成功解決問題

查看端口也運行了

查看瀏覽器也好了

7、用到的命令
maven -v回車;查看服務器是否安裝mavenjava -version;查看服務器是否有jdk環(huán)境mkdir maven;創(chuàng)建文件夾tar -zxvf文件名;解壓縮文件夾whereis java;查看jdk安裝目錄lsof -i:8080;查看端口8080是否被占用kill -9 PID;殺死正在運行的進程java jar jenkins.war --ajp13Port=-2 --httpPost=8080 &;啟動jenkins程序chmod -R 777 start.sh;給文件授權,777可讀可寫pwd;顯示當前目錄vim文件;打開文件,i:編輯;esc:退出編輯;:wq!:保存退出
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決IDEA maven 項目修改代碼不生效,mvn clean、install后才生效
這篇文章主要介紹了解決IDEA maven 項目修改代碼不生效,mvn clean、install后才生效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
關于HttpClient 引發(fā)的線程太多導致FullGc的問題
這篇文章主要介紹了關于HttpClient 引發(fā)的線程太多導致FullGc的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
spring學習之@SessionAttributes實例解析
這篇文章主要介紹了spring學習之@SessionAttributes實例解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02

