說明
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目錄直接拷貝出來執行。