<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          給 Spring Boot 項(xiàng)目減減肥!18.18M 到 0.18M 是如何做到的?

          共 1180字,需瀏覽 3分鐘

           ·

          2020-07-11 12:17

          點(diǎn)擊上方藍(lán)色“小哈學(xué)Java”,選擇“設(shè)為星標(biāo)

          回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!

          a78f8e1d61bd5b30321b88dd81d2fa87.webp

          871fa98ecdcbdffe5dc1ab66a89bae97.webp

          作者 |?yjgithub

          來(lái)源 |?http://suo.im/5OOWQy

          一、前言


          SpringBoot部署起來(lái)雖然簡(jiǎn)單,如果服務(wù)器部署在公司內(nèi)網(wǎng),速度還行,但是如果部署在公網(wǎng)(阿里云等云服務(wù)器上),部署起來(lái)實(shí)在頭疼:編譯出來(lái)的 Jar 包很大,如果工程引入了許多開源組件(SpringCloud等),那就更大了。


          這個(gè)時(shí)候如果想要對(duì)線上運(yùn)行工程有一些微調(diào),則非常痛苦


          二、瘦身前的Jar包


          Tomcat在部署Web工程的時(shí)候,可以進(jìn)行增量更新,SpringBoot也是可以的~


          SpringBoot編譯出來(lái)的Jar包中,磁盤占用大的,是一些外部依賴庫(kù)(jar包),例如:


          進(jìn)入項(xiàng)目工程根目錄,執(zhí)行 mvn clean install 命令,得到的Jar包,用壓縮軟件打開,目錄結(jié)構(gòu)如下:

          744d1766f6c93b348cdaa346132d7d8a.webp

          整個(gè)Jar包 18.18 MB, 但是 BOOT-INF/lib 就占用了將近 18 MB:?

          1c03da5a25f39df44af237f1ae1d698f.webp

          三、解決方法


          步驟1: 正常編譯JAR包,解壓出lib文件夾


          POM文件如下:


          925b3438d94733f0e4429c6fea6ac61f.webp

          進(jìn)入項(xiàng)目根目錄,執(zhí)行命令:mvn clean install


          將編譯后的Jar包解壓,拷貝 BOOT-INF 目錄下的lib文件夾 到目標(biāo)路徑;


          步驟2: 修改pom.xml配置,編譯出不帶 lib 文件夾的Jar包

          24308bb90de184f08833d818e5eb7aff.webp

          ? ? ??

          配置完成后,再次執(zhí)行編譯:mvn clean install


          生成的 Jar 包體積明顯變小,如下所示, 外部的 jar 包已經(jīng)不會(huì)被引入了:?

          e0ae1f68b77144dcac83106c1e336355.webp

          步驟3: 運(yùn)行編譯后的Jar包


          將 步驟1 解壓出來(lái)的lib文件夾、步驟2編譯的jar包放在同一個(gè)目錄, 運(yùn)行下面命令:

          0954a6be648642295d155f28ad67e108.webp


          或者在maven中輸入一下命令導(dǎo)出需要用到的jar包

          5710ddc78291dbe6341ec1312fc254b5.webp


          備注:


          將/path/to/改成實(shí)際的路徑。?

          -Dloader.path=lib文件夾路徑?

          最終目錄文件結(jié)構(gòu)是:

          e69246b24f81e22b87d73d8bbc876e73.webp


          說明


          1、通常,一個(gè)工程項(xiàng)目架構(gòu)確定后,引入的jar包基本上不會(huì)變,改變的大部分是業(yè)務(wù)邏輯;


          2、后面如果需要變更業(yè)務(wù)邏輯,只需要輕量地編譯工程,大大提高項(xiàng)目部署的效率。


          END


          934b2c7f12fe2c331c090be2cde8c142.webp

          有熱門推薦?

          1.?選型必看:RabbitMQ 七戰(zhàn) Kafka,差異立現(xiàn)

          2.?面試官:說說 Spring MVC 的執(zhí)行過程?

          3.?SpringSecurity + JWT,從入門到精通!

          4.?面試官扎心一問:數(shù)據(jù)量很大,分頁(yè)查詢很慢,有什么優(yōu)化方案?

          最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊(cè),覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點(diǎn)“在看”,關(guān)注公眾號(hào)并回復(fù)?Java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。

          謝謝支持喲 (*^__^*)

          瀏覽 93
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产91黄片 | 亚洲综合中文字幕在线 | 麻豆乱伦| 91视频人妻 | 噜噜噜无码综合 |