精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從零搭建開發腳手架 Spring Boot應用瘦身打包便于部署

開發 架構
Spring Boot 默認打的Jar,包含應用程序代碼及其所有依賴項(內置tomcat jar就不小了),所以打包出來的jar文件很大,動不動就幾十,上百M,稱之為Fat jar。
本文轉載自微信公眾號「Java大廠面試官」,作者laker。轉載本文請聯系Java大廠面試官公眾號。
  • 背景
  • 使用
  • 工作原理
  • 額外補充
    • 運行應用程序進行預熱
    • 使用Maven在編譯期打包依賴項
    • 生產環境

背景

Spring Boot 默認打的Jar,包含應用程序代碼及其所有依賴項(內置tomcat jar就不小了),所以打包出來的jar文件很大,動不動就幾十,上百M,稱之為Fat jar。

在網速不給力的情況下,上傳服務器非常耗時。然而,其中我們引用到的Tomcat、Spring以及其他第三方組件,它們大部分時間是不會修改的而且占用了很大的空間,每次打包打進去。其實,我們經常改動的內容都是我們自己編寫的代碼,其大小大概也就幾十KB,每次升級我們只需替換這些文件即可。

Spring社區大概也考慮到了開發者有這樣的需求,所以提供了spring-boot-thin-launcher這個插件用來將項目的依賴和配置從jar包中分離出去。

使用

官網地址:https://github.com/spring-projects-experimental/spring-boot-thin-launcher

在Spring Boot pom文件中新增插件如下:

  1. <project ...> 
  2.     <build> 
  3.         <plugins> 
  4.             <plugin> 
  5.                 <groupId>org.springframework.boot</groupId> 
  6.                 <artifactId>spring-boot-maven-plugin</artifactId> 
  7.                 <dependencies> 
  8.                     <dependency> 
  9.                         <groupId>org.springframework.boot.experimental</groupId> 
  10.                         <artifactId>spring-boot-thin-layout</artifactId> 
  11.                         <version>1.0.27.RELEASE</version> 
  12.                     </dependency> 
  13.                 </dependencies> 
  14.             </plugin> 
  15.         </plugins> 
  16.     </build> 
  17. </project> 

 

 

 

 

 

 

然后還像以前一樣執行mvn clean package,這時生成的jar包僅幾十KB。

我這里因為項目有很多靜態文件所以比較大有2MB。

執行java -jar xxx.jar即可直接運行程序。

除了jar文件減小了,其他效果看著與Fat jar是一樣。

嘗鮮之后,來看下其內部原理吧。

工作原理

我們來看下Jar包內部的構成。

  1. Manifest-Version: 1.0 
  2. Implementation-Title: map 
  3. Implementation-Version: 0.0.1-SNAPSHOT 
  4. Start-Class: com.laker.map.LakerMapApplication 
  5. Spring-Boot-Classes:  
  6. Build-Jdk-Spec: 1.8 
  7. Spring-Boot-Version: 2.3.7.RELEASE 
  8. Created-By: Maven Jar Plugin 3.2.0 
  9. Main-Class: org.springframework.boot.loader.wrapper.ThinJarWrapper 

即啟動類實際為:ThinJarWrapper

ThinJarWrapper類

我們編寫的代碼

項目的Pom文件

當執行java -jar xxx.jar時,實際執行的是ThinJarWrapper,它會先在指定目錄搜索看看依賴的jar包是否都存在,存在則直接使用,如果不存在,先從Maven中央倉庫下載到本地,然后,再執行我們自己編寫的main()入口方法。這種方式有點類似很多在線安裝程序:用戶下載后得到的是一個很小的exe安裝程序,執行安裝程序時,會首先在線下載所需的若干巨大的文件,再進行真正的安裝。

這個spring-boot-thin-launcher在啟動時搜索的默認目錄是用戶主目錄的.m2,我們也可以指定下載目錄,例如,將下載目錄指定為當前目錄:

  1. java -Dthin.root=. -jar xxx.jar 

執行后發現當前目錄下自動生成了一個repository目錄,這和Maven的默認下載目錄~/.m2/repository的結構是完全一樣的,只是它僅包含xxx.jar所需的運行期依賴項。

  1. repository/ 
  2.     com/ 
  3.     net/ 
  4.     org/ 
  5.     ... 

“注意:只有首次運行時會自動下載依賴項,再次運行時由于無需下載,所以啟動速度會大大加快。如果刪除了repository目錄,再次運行時就會再次觸發下載。

額外補充

運行應用程序進行預熱

緩存依賴項的最簡單方法是在目標環境中對應用程序進行預熱運行。正如我們之前看到的,這將導致依賴項被下載并緩存在本地 Maven 存儲庫中。如果我們運行多個應用程序,存儲庫最終將包含所有依賴項而沒有重復項。

由于運行應用程序可能會產生不必要的副作用,我們還可以執行“試運行”,只解析和下載依賴項,而無需運行任何用戶代碼:

  1. java -Dthin.dryrun=true -Dthin.root=. -jar xxx.jar 

使用Maven在編譯期打包依賴項

添加以下依賴

  1. <plugin> 
  2.     <groupId>org.springframework.boot.experimental</groupId> 
  3.     <artifactId>spring-boot-thin-maven-plugin</artifactId> 
  4.     <version>${thin.version}</version> 
  5.     <executions> 
  6.         <execution> 
  7.         <!-- Download the dependencies at build time --> 
  8.         <id>resolve</id> 
  9.         <goals> 
  10.             <goal>resolve</goal> 
  11.         </goals> 
  12.         <inherited>false</inherited> 
  13.         </execution> 
  14.     </executions> 
  15. </plugin> 

 

 

 

構建項目后,目錄為target/thin/root/。

生產環境

生產環境中,大部分都是內外網隔離的,建議先在本地“試運行”,然后把repository目錄,瘦jar一起復制到服務器,設置thin.root指定目錄,設置thin.offline切換到“離線”模式。所有依賴項都必須在本地可用.

  1. java -Dthin.root=. -Dthin.offline=true  -jar xxx.jar 

參考:

 

https://www.liaoxuefeng.com/wiki/1252599548343744/1304267002478625

 

責任編輯:武曉燕 來源: Java大廠面試官
相關推薦

2020-08-19 08:55:47

Redis緩存數據庫

2021-09-01 10:07:43

開發零搭建Groovy

2021-03-09 17:11:09

數據庫腳手架開發

2021-04-28 16:10:48

開發腳手架 Spring

2021-07-29 18:49:49

Spring開發腳手架

2021-03-11 14:16:47

Spring Boo開發腳手架

2021-04-13 14:47:53

認證授權Java

2021-05-13 17:02:38

MDC腳手架日志

2021-04-20 19:24:16

腳手架 Java微信

2025-05-16 07:24:41

Springkafka腳手架

2021-06-02 17:58:49

腳手架 冪等性前端

2021-02-19 22:43:50

開發腳手架Controller

2020-06-29 11:35:02

Spring BootJava腳手架

2016-08-10 14:59:41

前端Javascript工具

2016-09-07 15:35:06

VueReact腳手架

2023-11-21 17:36:04

OpenFeignSentinel

2014-08-15 09:36:06

2021-01-07 05:34:07

腳手架JDK緩存

2025-10-30 01:25:00

SpringDockerfileDocker

2018-08-30 16:08:37

Node.js腳手架工具
點贊
收藏

51CTO技術棧公眾號

9999热视频在线观看| 这里只有精品国产| 日韩成人av在线资源| 欧美中文字幕一二三区视频| 免费看污污视频| 日韩电影在线观看完整版| 日韩av一区二区在线影视| 久久五月天色综合| 国产特黄级aaaaa片免| 日韩专区视频| 一本一道久久a久久精品| 欧美性视频在线播放| 五月天激情开心网| 经典一区二区三区| 国产成人91久久精品| 中文字幕电影av| 国产精品亚洲片在线播放| 日韩视频国产视频| 天天操天天摸天天爽| 久久香蕉av| 国产精品国产精品国产专区不蜜 | 国产同性人妖ts口直男| 美女91精品| 欧美激情奇米色| 天天摸日日摸狠狠添| 精品嫩草影院| 日韩欧美国产一区二区在线播放| www.涩涩涩| 筱崎爱全乳无删减在线观看| 一区二区三区色| 亚洲图片欧洲图片日韩av| 天堂av在线资源| 懂色一区二区三区免费观看| 成人免费看吃奶视频网站| 免费黄色av片| 国产精品亚洲欧美| 韩国欧美亚洲国产| 欧美丰满艳妇bbwbbw| 欧美激情成人| 综合网中文字幕| 91精彩刺激对白露脸偷拍| 林ゆな中文字幕一区二区| 91精品国产日韩91久久久久久| 欧美伦理片在线看| 日韩精品三区| 91成人免费网站| 国产一级不卡毛片| 中文一区一区三区高中清不卡免费| 亚洲伊人伊色伊影伊综合网| 美国av在线播放| 在线观看电影av| 亚洲免费伊人电影| 欧美日韩午夜爽爽| 在线欧美三级| 一区二区三区在线视频观看58| av动漫免费观看| 黄网页免费在线观看| 亚洲日本中文字幕区| 波多野结衣激情| 污污影院在线观看| 亚洲国产你懂的| 欧美亚洲日本一区二区三区 | 国产成人精品久久亚洲高清不卡| 成人免费a视频| 午夜亚洲一区| 国产成人高潮免费观看精品| 亚洲精品国产精品国自产网站按摩| 日韩av不卡在线观看| 国产日韩欧美在线播放| 一级黄色短视频| 国产专区欧美精品| 不卡一卡2卡3卡4卡精品在| 刘亦菲久久免费一区二区| 97精品视频在线观看自产线路二| 欧美日韩免费精品| jizz亚洲| 亚洲一二三四在线| 国产在线青青草| a成人v在线| 欧美精品777| 一边摸一边做爽的视频17国产| 群体交乱之放荡娇妻一区二区| 亚洲精品自拍第一页| 国产激情av在线| 最新国产精品| **欧美日韩vr在线| 中文字幕二区三区| 国产成人在线观看| 欧美性xxxx69| av在线免费网站| 欧美体内谢she精2性欧美| 污片在线免费看| 视频精品二区| 亚洲欧洲日本专区| 欧美三级在线免费观看| 噜噜噜在线观看免费视频日韩 | 国产精品久久久国产盗摄| 岛国av在线一区| 无遮挡亚洲一区| 成人性生交大片免费看网站| 在线一区二区视频| 在线精品视频播放| 91综合久久| 欧美一区二区色| 精品国产亚洲一区二区麻豆| 国产偷国产偷精品高清尤物| h无码动漫在线观看| yiren22亚洲综合| 亚洲精品97久久| 成熟的女同志hd| 日韩精品1区2区3区| 国产无套精品一区二区| 日本在线www| 一本到不卡精品视频在线观看| 在线观看你懂的视频| heyzo久久| 欧美影院久久久| www.色视频| 国产精品灌醉下药二区| 毛片一区二区三区四区| 中文字幕一区日韩精品| 波霸ol色综合久久| 日韩一级片中文字幕| 成人爱爱电影网址| 免费观看中文字幕| 欧美一级做一级爱a做片性| 精品一区二区亚洲| 日本视频www| 国产成人鲁色资源国产91色综| 亚洲午夜精品国产| 国产成人亚洲一区二区三区| 日韩精品日韩在线观看| 久久精品视频久久| 国产91精品露脸国语对白| 中文有码久久| 四虎精品一区二区免费| 在线性视频日韩欧美| 亚洲黄网在线观看| 久久五月婷婷丁香社区| 黄色动漫网站入口| 日韩电影不卡一区| 欧洲亚洲免费视频| 毛片在线能看| 色综合亚洲欧洲| 男人天堂av电影| 久久午夜精品一区二区| 欧美日韩精品免费观看视一区二区| 黄色aa久久| 日韩激情av在线播放| 看片网址国产福利av中文字幕| www.欧美亚洲| 成人黄色片视频| 久久成人高清| 国产精品免费一区| 欧美一级二级三级区| 欧美电影一区二区| 波多野结衣在线网址| 国产精品一区二区久久不卡 | 国产精品人人爽人人做我的可爱| 国产亚洲精品久久飘花| 一本大道色婷婷在线| 亚洲欧美在线一区| 在线播放精品视频| 亚洲欧美另类久久久精品2019| www.日本久久| 尤物网精品视频| 奇米视频888战线精品播放| 成人mm视频在线观看| 日韩网站免费观看| 午夜精品久久久久久久99热黄桃 | 一区二区的视频| 一区二区三区在线视频观看58| 亚洲男女在线观看| 日韩国产欧美在线观看| av不卡在线免费观看| 91麻豆精品激情在线观看最新| 久久久噜噜噜久久中文字免| 天堂在线一二区| 欧美性猛交xxxx黑人交| 亚洲不卡在线播放| 9l国产精品久久久久麻豆| 91淫黄看大片| 午夜精品偷拍| 免费国产在线精品一区二区三区| 欧美123区| 欧美激情视频免费观看| 日本福利片在线| 91精品蜜臀在线一区尤物| 免费看日韩毛片| 国产精品毛片无遮挡高清| 国产白袜脚足j棉袜在线观看| 久久综合亚州| 亚洲一区二区精品在线观看| 成人线上播放| 国产欧美在线看| 91美女精品| 日韩在线播放视频| 日韩精品视频在线观看一区二区三区| 欧美精品xxxxbbbb| 中文字幕精品三级久久久 | 一级免费在线观看| 国产精品不卡在线观看| 加勒比精品视频| 国产精品一二三| 中文字幕国产传媒| 亚洲第一毛片| 成年人免费观看的视频| 伊人成综合网yiren22| 91文字幕巨乱亚洲香蕉| 日本h片久久| 日本高清不卡在线| 国产高清在线a视频大全| 色av中文字幕一区| 黄色软件在线| 日韩av最新在线| 亚洲欧美激情国产综合久久久| 欧美三级资源在线| 国产又大又黄视频| 亚洲a一区二区| 免费一级肉体全黄毛片| 一区精品在线播放| 微拍福利一区二区| 久久综合九色综合97_久久久| 丰满饥渴老女人hd| 国产麻豆一精品一av一免费| www.激情小说.com| 日韩avvvv在线播放| 毛片一区二区三区四区| 性感少妇一区| 熟女少妇在线视频播放| 亚洲精品影院在线观看| 国产成人生活片| 欧美jizzhd精品欧美巨大免费| 手机在线观看国产精品| 国产调教一区二区三区| 久久国产精品-国产精品| 狠狠久久伊人| 国产精品一区而去| 国产乱论精品| 国产自产在线视频一区| 国产伦理久久久久久妇女| 国产精品久久一区二区三区| eeuss鲁片一区二区三区| 99精彩视频| theporn国产在线精品| 懂色一区二区三区av片| 9l视频自拍九色9l视频成人| 风间由美一区二区三区| 久久夜色电影| 久久久影院一区二区三区| 久草成人在线| 五月天国产一区| 99精品美女| 91成人在线视频观看| 狠狠综合久久| 国产女大学生av| 久久精品人人做人人爽电影蜜月| 天天摸天天碰天天添| 免费久久精品视频| 涩多多在线观看| 国产91精品免费| 右手影院亚洲欧美| 欧美激情中文字幕| 欧美一级特黄高清视频| 亚洲欧美日韩国产综合在线| 福利所第一导航| 精品女厕一区二区三区| jizz国产在线观看| 欧美日韩免费不卡视频一区二区三区| 国产原创中文av| 欧美精品一区男女天堂| 五月天激情开心网| 日韩午夜在线视频| 国产美女一区视频| 日本一区二区不卡| 精品国产三级| 美日韩精品免费| 99久久婷婷| 波多野结衣之无限发射| 免费看欧美美女黄的网站| 亚洲精品成人无码毛片| 久久久久亚洲蜜桃| 99久久婷婷国产综合| 婷婷成人激情在线网| 在线视频免费观看一区| 亚洲精品一区二区三区香蕉| 国产人成在线视频| 欧美激情一区二区三区在线视频观看 | 精品久久久久成人码免费动漫| 亚洲激情在线观看视频免费| 成在在线免费视频| 欧美激情欧美狂野欧美精品| 欧美性片在线观看| 高清国产一区| 大色综合视频网站在线播放| 免费看欧美一级片| 毛片一区二区三区| 亚洲制服丝袜在线播放| 亚洲免费伊人电影| 午夜一区二区三区四区| 精品电影一区二区| 女女色综合影院| 欧美一区二区三区免费观看 | 日韩美女在线视频| www.久久热.com| 9.1国产丝袜在线观看| 懂色av色香蕉一区二区蜜桃| 日本黄网免费一区二区精品| 国产综合欧美| 激情在线观看视频| 国产精品丝袜久久久久久app| 国产一级久久久| 欧美精品色综合| yiren22综合网成人| 97成人精品区在线播放| 亚洲开心激情| 亚洲一区 在线播放| 秋霞av亚洲一区二区三| 女尊高h男高潮呻吟| 亚洲尤物视频在线| 国产又黄又粗又硬| 日韩在线不卡视频| 成人涩涩视频| 欧洲精品国产| 久久久久久网| 欧美成人三级伦在线观看| 亚洲韩国精品一区| 亚洲精品97久久中文字幕无码| 日韩在线资源网| 国产精品诱惑| 亚洲欧洲精品一区| 日本伊人色综合网| 亚洲午夜精品久久久久久高潮| 色94色欧美sute亚洲线路一ni| 婷婷综合激情网| 久久免费精品日本久久中文字幕| 欧美电影院免费观看| 久久国产精品免费观看| 狠狠色丁香婷综合久久| 黄色一级大片在线免费观看| 欧美日韩不卡一区二区| 欧美高清视频| 91亚洲精品一区| 你懂的亚洲视频| 精品国产aⅴ一区二区三区东京热| 亚洲精品美国一| 亚洲AV无码乱码国产精品牛牛 | 国产成人无码精品久久久久| 亚洲成人动漫在线播放| 91桃色在线观看| 国内精品视频在线播放| 免费国产自线拍一欧美视频| 亚洲最大成人网站| 欧美综合在线视频| 日日夜夜精品一区| 亚洲综合在线小说| 国产精品多人| 国产精品300页| 在线视频观看一区| 免费的黄网站在线观看| av资源站久久亚洲| 一本色道久久综合| 91精品人妻一区二区三区蜜桃欧美| 91黄色免费网站| 久草资源在线| 国产在线欧美日韩| 久久激情综合| 91传媒免费观看| 精品奇米国产一区二区三区| 麻豆免费版在线观看| 日韩久久在线| 国产乱人伦偷精品视频免下载 | 色女人在线视频| 久久久久久久久久久一区| 久热精品在线| 亚洲欧美小视频| 亚洲精品aⅴ中文字幕乱码 | 国产aⅴ精品一区二区三区黄| 99在线|亚洲一区二区| 免费视频91蜜桃| 日韩欧美一区二区在线视频| 亚洲精品mv| a级网站在线观看| 91污在线观看| 国产wwwxxx| 国产成人aa精品一区在线播放 | 国产精品久久久久久久久果冻传媒 | 在线看日韩欧美| 超碰成人在线免费| 男女av免费观看| 亚洲精品国久久99热| 精品三级久久久久久久电影聊斋| 91久久中文字幕| 久久国产免费| 久久久久黄色片| 中文字幕欧美精品日韩中文字幕| 第一区第二区在线| 久久久久久久高清| 一本一道波多野结衣一区二区| 91国内在线|