注意:在將此問題標記爲重複項之前,請確保您知道可執行JAR和fully executable SpringBoot JAR之間的差異。SpringBoot完全可執行jar無內部依賴關係
The official Spring Boot documentation描述瞭如何構建可執行JAR的完全。然後生成的JAR文件可以從/etc/init.d/
鏈接起來,並作爲普通的unix服務啓動/停止/重新啓動/靜態化,而無需其他腳本或JSVC工具。
但生成的JAR包含所有的庫,並且可能足夠大(在我的情況下爲70Mb +)。
我想生成這樣的完全可執行JAR沒有庫,但然後能夠運行它作爲Linux上的SystemV服務和以某種方式鏈接外部庫(JAR)。
UPDATE
我想降低成本,以加快deploy->測試 - >修正循環的工件尺寸。有時我通過移動網絡工作,大文件大小可以顯着降低我的工作速度。
如果沒有簡單的配置屬性或配置文件或命令行選項,我會使用一種破解。
在開始時,我可以生成包含所有依賴關係的構建。 然後我可以將它解壓縮並將所有庫移動到一個特殊的文件夾中。
然後我需要將它作爲完全可執行文件再次打包並運行指向帶庫的文件夾。
$ file usual.jar
usual.jar: Java Jar file data (zip)
爲什麼?然後,你只需要維護所有的外部依賴關係,這將需要另一個部署步驟等。 – Gregg
@Gregg我已更新該帖子。請讓我知道如果它仍然不清楚。 – gumkins
您可以將其作爲爆炸罐執行。因此,您可以創建胖罐,解壓縮它,僅部署所需的工件,將其餘的「緩存」。看到這篇文章的類似問題:http://bsideup.blogspot.com/2015/04/spring-boots-fat-jars-vs-docker.html – Gregg