1. 程式人生 > >springboot構建jar包部署分離lib資料夾

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