成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

    迭代步驟

    • 在windows環(huán)境使用命令啟動SpringBoot項目

    • 在Linux環(huán)境使用命令啟動項目

    • 在Linux環(huán)境使用腳本啟動項目

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

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

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

    一、前提:

    有一個Windows環(huán)境可以啟動的SpringBoot項目jar包

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

    例如:

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

    2、Window啟動jar包
    java -jar SpringBootTest-0.0.1-SNAPSHOT.jar

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

    啟動完畢,說明jar包是可以正常啟動的。

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

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

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

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

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

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

    但是以上的啟動方式有個問題,窗口一關(guān)項目就自動關(guān)閉了

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

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

    啟動成功,進程號為9777

    以上的腳本也存在問題,第二次啟動的時候,會因為已經(jīng)啟動了一個服務(wù),端口占用啟動不了

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

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

    創(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
    
    # 啟動項目
    nohup java -jar $fileName > springboot.log &

    之后,啟動項目就可以

    sh start.sh

    至此,SpringBoot項目在Linux的啟動就說明完畢。

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

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

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

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

    為什么明明沒有多少代碼,包的大小卻這么大呢?

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

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

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

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

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

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

    答案是:可以!在實際開發(fā)中,依賴包一般來說是不會動的,于是開始第三步。

    三、分離依賴部署

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

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

    mkdir lib

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

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

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

    2.改造項目的pom.xml文件

    增加配置:

        <build>
            <plugins>
                <!-- 解決jar中沒有主清單屬性問題 -->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <mainClass>com.example.springboottest.SpringBootTestApplication</mainClass>
                        <!-- jar包不攜帶依賴配置開始-->
                        <layout>ZIP</layout>
                        <includes>
                            <include>
                                <groupId>nothing</groupId>
                                <artifactId>nothing</artifactId>
                            </include>
                        </includes>
                        <!-- jar包不攜帶依賴部署配置結(jié)束-->
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

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

    3.重新package

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

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

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

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

    這時候,如果使用原本的腳本啟動就會報錯:

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

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

    (1)增加啟動文件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
    
    # 啟動項目
    nohup java -jar -Dloader.path=./lib  $fileName > springboot.log &

    使用外部依賴啟動成功

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

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

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

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

    合并后的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以上使用外部依賴
    maxsize=$((1024 * 1024 * 10)) # 10M
    
    if [ $filesize -gt $maxsize ]
    then
      echo "文件大小為【$filesize】,使用內(nèi)部依賴啟動"
      nohup java -jar -Dloader.path=./lib  $fileName > springboot.log &
    else
      echo "文件大小為【$filesize】,使用外部依賴啟動"
      nohup java -jar $fileName > springboot.log &
    fi

    適配兩種情況

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

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

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

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

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

    答案也是可以!當前還存在的問題是:

    1、需要手動選擇文件上傳。

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

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

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

    1、IDEA安裝Alibaba Cloud Toolkit插件

    1.1 從插件市場中下載Alibaba Cloud Toolkit插件,并重啟IDEA。

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

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

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

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

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

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

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

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

    查看所在路徑

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

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

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

    填加執(zhí)行命令

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

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

    4.點擊Upload按鈕

    成果:1秒部署SpringBoot項目

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

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

    名稱欄目:怎么將本地SpringBoot項目jar包部署到Linux環(huán)境中
    本文鏈接:http://jinyejixie.com/article36/ghhhpg.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、小程序開發(fā)、自適應(yīng)網(wǎng)站網(wǎng)站改版、定制開發(fā)Google

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

    成都定制網(wǎng)站網(wǎng)頁設(shè)計
    抚顺市| 宕昌县| 邵阳市| 大渡口区| 十堰市| 牡丹江市| 雷波县| 镇远县| 昔阳县| 林西县| 武宁县| 宜春市| 屏南县| 商河县| 宝清县| 永和县| 灵武市| 镇远县| 漳平市| 高平市| 安宁市| 沁阳市| 出国| 正宁县| 县级市| 即墨市| 邯郸县| 宜城市| 化隆| 乐昌市| 金平| 丰镇市| 乐业县| 油尖旺区| 南江县| 康乐县| 时尚| 金门县| 纳雍县| 昭觉县| 长阳|