springboot部署jar包與依賴包分離至lib文件夾

說明

springboot構建jar部署,通過使用 java -jar xxx.jar 命令啓動服務,非常方便,但是通過maven構建的jar包含 \BOOT-INF\lib\下的所有依賴jar包,導致jar包文件太大,本文將接解決這一問題。

解決思路

在maven構建springboot項目jar時候,將lib文件夾分離出來。
在運行jar的時候,能夠應用到分離的lib包。

解決步驟

正常構建 分離lib

執行mvn install 命令,構建jar包,構建後的jar包結構如圖:
|--META-INF
|--BOOT-INF
    |--classes
    |--lib
|--org

處理:
將構建好的jar包解壓,拷貝出lib目錄

修改pom文件 構建不包含lib的jar包

<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>

處理:
執行mvn install 構建jar包 查看jar包結構
|--META-INF
|--BOOT-INF
    |--classes
|--org

運行編譯jar包

1.將分離的lib文件和jar包放在同一個文件夾中,目錄結構如下:
    |--lib
    |--xxx.jar
2.執行運行命令(備註 /lib 爲分離lib文件路徑 即項目依賴jar包)
    java -Dloader.path=lib/ -jar xxx.jar

注意

1.一定要按照步驟進行,兩次構建,不要一次構建,然後將lib目錄直接拷貝出來執行。

 

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