真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

這篇文章主要介紹了怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有久治免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

    迭代步驟

    • 在windows環(huán)境使用命令啟動(dòng)SpringBoot項(xiàng)目

    • 在Linux環(huán)境使用命令啟動(dòng)項(xiàng)目

    • 在Linux環(huán)境使用腳本啟動(dòng)項(xiàng)目

    • 優(yōu)化腳本,每次重啟時(shí)先關(guān)閉項(xiàng)目

    • 分離依賴,每次上傳Linux環(huán)境只上傳幾百k的代碼包

    • 搭配IDEA插件,實(shí)現(xiàn)在IDEA中一鍵部署

    一、前提:

    有一個(gè)Windows環(huán)境可以啟動(dòng)的SpringBoot項(xiàng)目jar包

    1、使用Maven的package命令打出一個(gè)攜帶依賴的jar包

    例如:

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    2、Window啟動(dòng)jar包
    java -jar SpringBootTest-0.0.1-SNAPSHOT.jar

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    啟動(dòng)完畢,說(shuō)明jar包是可以正常啟動(dòng)的。

    二、linux環(huán)境啟動(dòng)jar包

    1、先將jar包扔到linux環(huán)境

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    2、測(cè)試是否可以啟動(dòng)(需要有Java環(huán)境)
    java -jar SpringBootTest-0.0.1-SNAPSHOT.jar

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    說(shuō)明在Linux環(huán)境也是可以正常啟動(dòng)的

    但是以上的啟動(dòng)方式有個(gè)問(wèn)題,窗口一關(guān)項(xiàng)目就自動(dòng)關(guān)閉了

    3、優(yōu)化啟動(dòng)腳本,改為后臺(tái)啟動(dòng),并將日志輸出到springboot.log
    nohup java -jar SpringBootTest-0.0.1-SNAPSHOT.jar > springboot.log &

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    啟動(dòng)成功,進(jìn)程號(hào)為9777

    以上的腳本也存在問(wèn)題,第二次啟動(dòng)的時(shí)候,會(huì)因?yàn)橐呀?jīng)啟動(dòng)了一個(gè)服務(wù),端口占用啟動(dòng)不了

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    4、完善腳本,啟動(dòng)時(shí),如果存在已經(jīng)啟動(dòng)的服務(wù),先關(guān)閉,再啟動(dòng)

    創(chuàng)建腳本

    vim start.sh

    腳本內(nèi)容

    # 關(guān)閉程序
    # fileName為jar包的名稱
    fileName=SpringBootTest-0.0.1-SNAPSHOT.jar
    pid=$(ps -ef | grep $fileName| grep -v "grep" | awk '{print $2}')
    kill -9 $pid
    
    # 啟動(dòng)項(xiàng)目
    nohup java -jar $fileName > springboot.log &

    之后,啟動(dòng)項(xiàng)目就可以

    sh start.sh

    至此,SpringBoot項(xiàng)目在Linux的啟動(dòng)就說(shuō)明完畢。

    但是,以上的部署方式還存在一些問(wèn)題,在只有web依賴的時(shí)候,jar的大小就已經(jīng)達(dá)到17M,

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    而在實(shí)際開(kāi)發(fā)中,jar包的大小甚至?xí)竭_(dá)一百多兆。例如這樣:

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    為什么明明沒(méi)有多少代碼,包的大小卻這么大呢?

    解壓SpringBootTest-0.0.1-SNAPSHOT.jar包查看內(nèi)容

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    可以看出,lib文件夾占用了16.7M,而lib文件夾里面是什么東西呢?

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    可以看到,就是各種的依賴。

    所以,就引發(fā)了新的優(yōu)化方向,能不能將依賴包直接放在服務(wù)器上,每次只更新自己的代碼?

    答案是:可以!在實(shí)際開(kāi)發(fā)中,依賴包一般來(lái)說(shuō)是不會(huì)動(dòng)的,于是開(kāi)始第三步。

    三、分離依賴部署

    1.上傳依賴jar包Linux服務(wù)器

    (1)創(chuàng)建lib文件夾

    mkdir lib

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    (2)將jar包中的/BOOT-INF/lib目錄底下的jar包全部上傳到Linux服務(wù)器的lib文件夾

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    2.改造項(xiàng)目的pom.xml文件

    增加配置:

        
            
                
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                    
                        com.example.springboottest.SpringBootTestApplication
                        
                        ZIP
                        
                            
                                nothing
                                nothing
                            
                        
                        
                    
                    
                        
                            
                                repackage
                            
                        
                    
                
            
        

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    3.重新package

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    新生成的jar包僅僅只有156kb!

    4.上傳到服務(wù)器

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    這時(shí)候,如果使用原本的腳本啟動(dòng)就會(huì)報(bào)錯(cuò):

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    5.使用-Dloader.path指定外部依賴包

    (1)增加啟動(dòng)文件start2.sh

    cp start.sh start2.sh

    (2)在java -jar后追加-Dloader.path=./lib

    # 關(guān)閉程序
    fileName=SpringBootTest-0.0.1-SNAPSHOT.jar
    pid=$(ps -ef | grep $fileName| grep -v "grep" | awk '{print $2}')
    kill -9 $pid
    
    # 啟動(dòng)項(xiàng)目
    nohup java -jar -Dloader.path=./lib  $fileName > springboot.log &

    使用外部依賴啟動(dòng)成功

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    到此,使用外部依賴啟動(dòng)就完成了,只要加上-Dloader.path=./lib就可以了

    6.合并start.sh和start2.sh腳本

    第五步還存在的一個(gè)問(wèn)題,雖然這個(gè)方法很好用,但是又增加了一個(gè)腳本。公司內(nèi)部,總是有人想要打全量包,使用自帶的依賴,有的人想要打不攜帶依賴的包,可以快速部署啟動(dòng),這時(shí)候,就需要區(qū)分,到底是要用start.sh腳本還是start2.sh腳本,于是,將start.shstart2.sh腳本進(jìn)行合并,大于10M的時(shí)候,就使用內(nèi)部依賴,小于10M的時(shí)候就使用外部依賴

    合并后的start.sh腳本:

    # 關(guān)閉程序
    fileName=SpringBootTest-0.0.1-SNAPSHOT.jar
    pid=$(ps -ef | grep $fileName| grep -v "grep" | awk '{print $2}')
    kill -9 $pid
    
    # 獲取jar包的大小
    filesize=`ls -l $fileName | awk '{ print $5 }'`
    # 多少M(fèi)以上使用外部依賴
    maxsize=$((1024 * 1024 * 10)) # 10M
    
    if [ $filesize -gt $maxsize ]
    then
      echo "文件大小為【$filesize】,使用內(nèi)部依賴啟動(dòng)"
      nohup java -jar -Dloader.path=./lib  $fileName > springboot.log &
    else
      echo "文件大小為【$filesize】,使用外部依賴啟動(dòng)"
      nohup java -jar $fileName > springboot.log &
    fi

    適配兩種情況

    小于10M的jar包使用外部依賴

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    大于10M的jar包使用內(nèi)部依賴

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    在第三步優(yōu)化完之后,jar包的大小大大減少,只剩下1M都不到,每次上傳耗時(shí)不到1s,還能不能繼續(xù)優(yōu)化呢?

    答案也是可以!當(dāng)前還存在的問(wèn)題是:

    1、需要手動(dòng)選擇文件上傳。

    2、需要手動(dòng)執(zhí)行腳本

    于是,進(jìn)行第四步優(yōu)化,引入Alibaba Cloud Toolkit插件

    四、搭配Alibaba Cloud Toolkit插件使用,實(shí)現(xiàn)一鍵上傳文件,并執(zhí)行腳本

    1、IDEA安裝Alibaba Cloud Toolkit插件

    1.1 從插件市場(chǎng)中下載Alibaba Cloud Toolkit插件,并重啟IDEA。

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    2.配置服務(wù)器地址

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    可以看到就增加了一條新的配置

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    3.配置上傳地址和執(zhí)行的命令

    查看所在路徑

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    點(diǎn)擊上傳,配置上傳的文件、上傳地址以及執(zhí)行的腳本

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    填加執(zhí)行命令

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    4.點(diǎn)擊Upload按鈕

    成果:1秒部署SpringBoot項(xiàng)目

    怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中

    關(guān)于“怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


    新聞名稱:怎么將本地SpringBoot項(xiàng)目jar包部署到Linux環(huán)境中
    分享路徑:http://weahome.cn/article/ghhhpg.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部