利用Spring Boot Thin Launcher產生Thin JAR
一、目的
在使用的依賴變化不大的情況下,使用Spring Boot Thin Launcher能幫助我們將依賴自JAR中抽出,最後可以得到一個不大且可執行的JAR。此外,在本地產生一個repository,並將抽出的依賴集中於此。如此一來,當後續更新程式時,就可以加快更換的速度,同時也讓我們更易於管理不同環境所使用的依賴。
二、環境建置
開發環境如下:
• 作業系統 windows 10
• Eclipse 2021-06(Eclipse IDE for Enterprise Java and Web Developers)
• openlogic-openjdk-8u262-b10-win-64
• Apache Maven 3.8.1
三、實作
1. 建立maven project
2. pom.xml添加spring boot依賴 & 相關plugin
• 繼承spring boot parent pom,取得其所有的預設依賴
• 添加spring-boot-starter-web依賴
• spring-boot-maven-plugin用來建立spring boot application,並加入相關dependency,此用途為將依賴自JAR取出
• spring-boot-thin-maven-plugin則是在maven build時,在target/thin/root 產生一個名為repository的package,並將下載的依賴集中在此
3. 建立一個測試用的TestController.java
4. maven build:clean package
5.
查看build結果:紅色框框為可執行JAR及其所需要依賴
6. 使用以下指令來執行JAR
java -Dthin.root=repository -jar {{JAR名稱}}
• -Dthin.root :設定使用的repository位置
7. 使用Postman查看測試結果
四、結論
圖一為使用Spring Boot Thin Launcher前,圖二則為使用Spring Boot Thin Launcher後。
由此可知,使用Spring Boot Thin Launcher能幫助我們減少可執行JAR檔的大小。
(圖一)
(圖二)
五、參考資料
1. https://github.com/spring-projects-experimental/spring-boot-thin-launcher
2. https://www.baeldung.com/spring-boot-thin-jar