springboot增量打包更新--靜態資源分離打包

springboot部署打包爲jar,一般都是全量打包,jar包的大小通常都是超過100M的,並且在進行一般的頁面html微調、js修改、img替換、css樣式修改時也需要重新打包進行部署;每次微小的調整都需要重新打包就太煩了,一般在項目開發穩定以後項目中引用的jar就不再改變

爲了方便進行靜態資源管理及增量部署,對項目引用jar包以及靜態資源分離打包,提高打包的效率及部分前端微調項修改後及時進行無重啓更新;

具體步驟如下:

1、初次打包進行全量打包,對打包的jar進行解壓,解壓後的文件如下圖展示:
jar包解壓後的目錄
2分離引用的jar包:進入BOOT-INF中,copy文件夾lib到指定目錄下,如jar包運行目錄;如圖3,
需要copy引用的jar包文件夾-lib
圖-3,最終lib存放的目錄
3分離靜態文件:在lib同目錄下創建resource文件夾,進入classes文件夾內copy文件夾static及templates文件夾到resource文件下;如圖:
copy到resource目錄下的靜態文件,包括HTML、JS、css、image等靜態文件
4、刪除jar包及解壓文件,當前目錄結構如下:
初次完成jar及靜態文件分離
5、增量打包,打包不再將引用jar及static文件夾、templates文件夾打到jar包中:首先修改pom.xml文件中打包相關配置,如下圖:
打包配置增加了如下代碼:

<layout>ZIP</layout>
<includes>
        <include>
                <groupId>non-exists</groupId>
                <artifactId>non-exists</artifactId>
         </include>
</includes>

resource打包配置增加如下過濾:

<exclude>static/**/*</exclude>
<exclude>templates/**/*</exclude>

最終pom.xml中打包配置如下:

<build>
    <finalName>web</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
                <mainClass>com.***.Application</mainClass>
                <!--增量打包配置【start】-->
                <layout>ZIP</layout>
                <includes>
                    <include>
                        <groupId>non-exists</groupId>
                        <artifactId>non-exists</artifactId>
                    </include>
                </includes>
                <!--增量打包配置【end】-->
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.0.4.RELEASE</version>
            <configuration>
                <fork>false</fork>
            </configuration>
        </plugin>
    </plugins>
 
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
            <excludes>
                <!--【增加靜態文件過濾】-->
                <exclude>static/**/*</exclude>
                <exclude>templates/**/*</exclude>
            </excludes>
        </resource>
    </resources>
</build>

6、執行maven clean install,獲得最終jar包,如下圖所示,只有5M大小;
最終項目打包的目錄結構
7、最終運行時,jar的執行命令中增加lib及resource的路徑指向,否則項目無法正常運行;

java -Dloader.path=./lib,./resource -jar ./web.jar

8、如上進行增量打包後,如果前端有不涉及到後端的修改時都可以對resource中的文件進行替換進行實時更新,不再進行重啓;後端有變動也不用上傳100多M的jar到服務器,影響效率;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章