<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    Spring Boot 項目瘦身指南!

    共 6502字,需瀏覽 14分鐘

     ·

    2021-08-20 20:14


    1.前言
    2.瘦身前的Jar包
    3.解決方案
    一、前言
    Spring Boot部署起來雖然簡單,如果服務器部署在公司內(nèi)網(wǎng),速度還行,但是如果部署在公網(wǎng),部署起來實在頭疼:編譯出來的 Jar 包很大,如果工程引入了許多開源組件(Spring Cloud等),那就更大了。
    這個時候如果想要對線上運行工程有一些微調(diào),則非常痛苦。
    二、瘦身前的Jar包
    Tomcat在部署Web工程的時候,可以進行增量更新,Spring Boot也是可以的~
    Spring Boot編譯出來的Jar包中,磁盤占用大的,是一些外部依賴庫(jar包),例如:進入項目工程根目錄,執(zhí)行 mvn clean install 命令,得到的Jar包,用壓縮軟件打開,目錄結(jié)構(gòu)如下:
    整個Jar包 18.18 MB, 但是 BOOT-INF/lib 就占用了將近 18 MB:
    三、解決方法
    步驟1: 正常編譯JAR包,解壓出lib文件夾
    POM文件如下:
    <build>  
        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>   
                <artifactId>spring-boot-maven-plugin</artifactId>  
                <configuration>  
                    <mainClass>com.johnnian.App</mainClass>  
                    <layout>ZIP</layout>  
                </configuration>  
                <executions>  
                <execution>  
                     <goals>  
                         <goal>repackage</goal>  
                     </goals>  
                 </execution>  
               </executions>  
            </plugin>  
         <plugins>  
    <build>
    進入項目根目錄,執(zhí)行命令:mvn clean install
    將編譯后的Jar包解壓,拷貝 BOOT-INF 目錄下的lib文件夾 到目標路徑;
    步驟2: 修改pom.xml配置,編譯出不帶 lib 文件夾的Jar包
    <build>  
        <plugins>  
            <plugin>  
                <groupId>org.springframework.boot</groupId>   
                <artifactId>spring-boot-maven-plugin</artifactId>  
                <configuration>  
                    <mainClass>com.johnnian.App</mainClass>  
                    <layout>ZIP</layout>  
                    <includes>   
                        <include>  
                            <groupId>nothing</groupId>  
                            <artifactId>nothing</artifactId>  
                        </include>    
                    </includes>  
                </configuration>  
                <executions>  
                    <execution>  
                        <goals>  
                            <goal>repackage</goal>  
                        </goals>  
                    </execution>  
                </executions>  
            </plugin>  
         <plugins>  
    <build>

    配置完成后,再次執(zhí)行編譯:mvn clean install
    生成的 Jar 包體積明顯變小,如下所示, 外部的 jar 包已經(jīng)不會被引入了:
    步驟3: 運行編譯后的Jar包
    將 步驟1 解壓出來的lib文件夾、步驟2編譯的jar包放在同一個目錄, 運行下面命令:
    java -Dloader.path=/path/to/lib -jar /path/to/springboot-jsp-0.0.1-SNAPSHOT.jar
    或者在maven中輸入一下命令導出需要用到的jar包
    mvn dependency:copy-dependencies -DoutputDirectory=F:\\ideaWorkPlace\\AnalysisEngine\\lib -DincludeScope=runtime
    備注:
    將/path/to/改成實際的路徑。
    -Dloader.path=lib文件夾路徑
    最終目錄文件結(jié)構(gòu)是:
    ├── lib   #lib文件夾  
    └── springboot-jsp-0.0.1-SNAPSHOT.jar
    說明:
    1、通常,一個工程項目架構(gòu)確定后,引入的jar包基本上不會變,改變的大部分是業(yè)務邏輯;
    2、后面如果需要變更業(yè)務邏輯,只需要輕量地編譯工程,大大提高項目部署的效率。
    版權(quán)聲明:本文為CSDN博主「yjgithub」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。原文鏈接:https://blog.csdn.net/yjgithub/article/details/80475521

    逆鋒起筆是一個專注于程序員圈子的技術(shù)平臺,你可以收獲最新技術(shù)動態(tài)、最新內(nèi)測資格、BAT等大廠大佬的經(jīng)驗、增長自身學習資料、職業(yè)路線、賺錢思維,微信搜索逆鋒起筆關(guān)注!

    處理 Exception 的幾種實踐,被很多團隊采納!
    SpringBoot 實現(xiàn)登錄攔截器(實戰(zhàn)版)
    40 個 SpringBoot 常用注解
    基于 SpringBoot 仿豆瓣完整源碼分享!
    Java 框架 Mybatis 插件開發(fā)指南,超詳細!

    點贊是最大的支持 
    瀏覽 82
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    疯狂操逼网站 | 北条麻妃无码一区二区三区视频 | A无码片视频 | 熟女少妇内射日韩亚洲 | 国产乱子伦趁熟睡女人 |