溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

發(fā)布時(shí)間:2022-03-04 14:05:56 來源:億速云 閱讀:349 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

1、Jenkins安裝

下載jenkins安裝包,maven安裝包;打開xftp將安裝包上傳到服務(wù)器;弄maven鏡像:進(jìn)入maven的conf文件夾,vim打開setting.xml文件添加阿里云鏡像;wq!保存退出。

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

 <!-- 阿里鏡像倉庫 -->
  <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

運(yùn)行 mvn -v驗(yàn)證maven是否安裝成功

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

進(jìn)入jenkins安裝位置執(zhí)行:java -jar jenkins.war &;啟動(dòng);啟動(dòng)不成功,如果是端口占用,可以使用如下命令修改端口號(hào)并啟動(dòng)。執(zhí)行之后生成一個(gè)密碼,記下來

java -jar jenkins.war --ajp13Port=-1 --httpPort=8081 &

訪問jenkins;如果訪問不了,檢查有沒有在阿里云和寶塔開放上面使用端口的安全組;如果不用寶塔那么開發(fā)端口要使用命令:

firewall-cmd --zone=public --add-port=8081/tcp --permanent

訪問http://服務(wù)器ip:端口號(hào);出現(xiàn)jenkins登錄頁面,使用第5步記住的密碼登錄。

2、Jenkins插件安裝

選擇系統(tǒng)管理,插件管理

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

安裝ssh插件,點(diǎn)擊可選插件,搜索Publish Over SSH插件,安裝Plublish Over SSH插件之前得先按照Infrastructure plugin for Publish Over X插件。否則報(bào)錯(cuò)。

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

搜索 Jackson 2 API 插件

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

點(diǎn)擊Jenkins

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

點(diǎn)擊全局憑據(jù)

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

3、點(diǎn)擊添加憑據(jù)

添加服務(wù)器憑據(jù),填寫服務(wù)器登錄用戶名和密碼

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

添加gitee用戶憑據(jù),填寫gitee賬號(hào)用戶名密碼添加gitee私人令牌的憑據(jù),去gitee賬號(hào)添加私人令牌,獲取到私人令牌再添加憑據(jù)。

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

4、Jenkins環(huán)境配置

4.1、全局配置

選擇Manage Jenkins系統(tǒng)管理,選擇Global Tool Configuration全局工具配置進(jìn)入配置java的一些配置環(huán)境

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

進(jìn)入配置環(huán)境Maven和JDK并保存

這里的Maven選擇服務(wù)器中下載的maven的路徑,JDK選擇服務(wù)器安裝路徑,找不到JDK安裝路徑可以看這里服務(wù)器jdk安裝位置查詢步驟:

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

jdk取消自動(dòng)安裝,選擇服務(wù)器中jdk的安裝地址

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

4.2、系統(tǒng)配置

返回選擇Manage Jenkins系統(tǒng)管理,選擇系統(tǒng)配置

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Maven配置

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

jenkins URL配置

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

環(huán)境變量配置

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

SSH配置

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Gitee配置

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

使用密鑰方式登錄目標(biāo)發(fā)布服務(wù)器

輸入命令:ssh-keygen -t rsa回車;出現(xiàn)東西直接復(fù)制()里面的東西粘貼;回車;一直回車知道出現(xiàn)圖形。

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

點(diǎn)擊Test之后如果出現(xiàn)錯(cuò)誤以下錯(cuò)誤,那么看看有沒有設(shè)置了憑據(jù):

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

5、Jenkins自動(dòng)部署SpringBoot項(xiàng)目

新建一個(gè)springboot項(xiàng)目,寫個(gè)demo測(cè)試可不可以運(yùn)行,然后上傳到gitee上新建tiem(新建任務(wù)),在Jenkins中新建任務(wù),選擇構(gòu)建一個(gè)maven項(xiàng)目,然后確定

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

General設(shè)置Gitee項(xiàng)目鏈接

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

系統(tǒng)設(shè)置中的SSH remote hosts

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

設(shè)置Pre Steps,Build,Build點(diǎn)擊高級(jí)可以展開填寫如下信息

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

設(shè)置Post Steps

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

shart.sh文件內(nèi)容如下:

/root/www/javaweb/project/testJenkis/demo-0.0.1-SNAPSHOT.jar是項(xiàng)目編譯后jar包出現(xiàn)在這里,jar命令是以項(xiàng)目的pom文件中的artifactId和version拼接起來的。

/root/www/javaweb/project/testJenkis/out.log是項(xiàng)目編譯后日志文件位置。

#!/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 "  =====關(guān)閉Java應(yīng)用======"
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 "  =====啟動(dòng)Java應(yīng)用======"
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文件授權(quán),命令如下: 777代表可讀可寫可執(zhí)行

chmod -R 777 start.sh

應(yīng)用保存任務(wù)設(shè)置點(diǎn)擊立即構(gòu)建,

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

可以選擇控制臺(tái)輸出查看運(yùn)行結(jié)果,如果出現(xiàn)錯(cuò)誤,看提示修改,如果成功則可以訪問項(xiàng)目中設(shè)置的接口路徑。

6、遇到問題

1、重新啟動(dòng)jenkins忘記了登錄密碼

1. cd /root/.jenkins/users命令進(jìn)入users文件夾,查看該文件下是否有用戶文件夾,找到admin文件夾

2. 打開admin文件夾,發(fā)現(xiàn)里面有一個(gè)config.xml文件,打開改文件,找到passwordhash,可以先復(fù)制保存一下原來的passwordhash

3. 然后將passwordhash中的內(nèi)容修改成如下內(nèi)容并保存退出:`#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq`

4. 然后重啟jenkins,如果重啟失敗,可能端口占用,估計(jì)是之前啟動(dòng)的jenkins還在運(yùn)行,因此可以查看一下netstat -anp|grep 8081;端口是否占用,使用kill -9 進(jìn)程id來殺死該進(jìn)程。

5.然后重新之前啟動(dòng)jenkins命令:java -jar jenkins.war -ajp13Port=-1 -httpPort=8081

6. 訪問jenkins使用123456密碼進(jìn)行登錄。

7. 成功

2、 安裝ssh插件出現(xiàn)問題

選擇Manage Plugins ,可選插件,

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

下載ssh的時(shí)候出現(xiàn)以下錯(cuò)誤

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

出現(xiàn)失敗的原因是要先安裝下面的插件,然后再安裝就不會(huì)出錯(cuò)了。

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

3、構(gòu)建項(xiàng)目出現(xiàn)如下錯(cuò)誤:

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

在項(xiàng)目的pom.xml文件修改build為下面代碼:記得得上傳到gitee,或者直接在之前上傳到gitee的項(xiàng)目那里修改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、點(diǎn)擊立即構(gòu)建之后出現(xiàn)黃色,錯(cuò)誤如下:

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

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

修改前:

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

修改后:

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

jar是放在root目錄下的www下,但是這里配置的時(shí)候不需要加上root,只有start.sh就必須要加上root,否則出錯(cuò)

成功解決問題

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

查看端口也運(yùn)行了

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

查看瀏覽器也好了

Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目

7、用到的命令

  • maven -v回車;查看服務(wù)器是否安裝maven

  • java -version;查看服務(wù)器是否有jdk環(huán)境

  • mkdir maven;創(chuàng)建文件夾

  • tar -zxvf 文件名;解壓縮文件夾

  • whereis java;查看jdk安裝目錄

  • lsof -i:8080;查看端口8080是否被占用

  • kill -9 PID;殺死正在運(yùn)行的進(jìn)程

  • java jar jenkins.war --ajp13Port=-2 --httpPost=8080 &;啟動(dòng)jenkins程序

  • chmod -R 777 start.sh;給文件授權(quán),777可讀可寫

  • pwd;顯示當(dāng)前目錄

  • vim 文件;打開文件,i:編輯;esc:退出編輯;:wq!:保存退出

感謝各位的閱讀!關(guān)于“Jenkins如何自動(dòng)部署SpringBoot項(xiàng)目”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI