SpringBoot快速瘦身,快速部署jar

本片要點

  • 介紹如何爲jar包瘦身,方便部署。

正常打包部署的方式

以前已經在文章中介紹詳細部署的過程:SpringBoot項目部署到Linux服務器併發布html

可是,這種作法有一些問題,就是每次上傳jar包到服務器的時候都要好久。爲何呢?也許咱們只是建立了一個最基本的SpirngBoot項目,也許咱們只是寫了三四行代碼,最後生成的jar包大小也大的離譜,足足有17M,緣由在於生成的可執行jar不只包含編譯以後的類,還包含了程序運行所依賴的jar包,而這大部分佔比就是這些jar包。java

咱們經過壓縮軟件查看生成jar包中的內容:git

slimming.jar # 17M
	- BOOT-INF
		- classes # 存放編譯後的代碼 
		- lib # 運行須要的依賴  
		- classpath.idx
	- META-INF
	- org

咱們能夠明顯看到,致使jar包體積那麼大的罪魁禍首就是這個lib,且每每咱們不多改動這些依賴,頻繁改動的每每是一些代碼中的邏輯,所以,瘦身的思路就在於:將lib從jar中抽離出來,只需上傳一次lib,其餘部分的體積就微不足道了,就可以實現秒傳。spring

瘦身部署

拿到lib目錄

按照原先的maven配置方式,在target目錄下生成jar。shell

<build>
       <finalName>slimming</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
$ mvn clean package

拿到BOOT-INF/lib目錄。springboot

改變默認的打包方式

<build>
       <finalName>slimming</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 指定項目的啓動類 -->
                    <mainClass>com.hyh.SpringBootSlimmingApplication</mainClass>
                    <!-- 指定打包方式爲ZIP -->
                    <layout>ZIP</layout>
                    <includes>
                        <!-- 若是有本身的依賴jar,能夠再此導入 -->
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <!-- 剔除其餘的依賴,只保留最簡單的結構 -->
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

再次打包

$ mvn clean package

此時,/target目錄下的slimming.jar已經從18000K變成121K。服務器

上傳lib和jar

- lib
- slimming.jar
$ nohup java -Dloader.path=./lib -jar slimming.jar $
  • Dloader.path:告知項目運行依賴的jar包在哪。

源碼下載

本文內容均爲對優秀博客及官方文檔總結而得,原文地址均已在文中參考閱讀處標註。最後,文中的代碼樣例已經所有上傳至Gitee:https://gitee.com/tqbx/springboot-samples-learn,另有其餘SpringBoot的整合哦。併發

參考閱讀

相關文章
相關標籤/搜索