[英]Deploying spring boot fat jar
我有一個春季啟動應用程序,可以在生產環境中很好地工作,但是最近我對胖子罐的部署策略有一些疑問。胖子罐的總大小約為80 MB,並且由於它們都捆綁成一個罐子,所以每次我更換時一行,就重新部署了這個80 MB的程序包。 如何在/ lib目錄中將此胖jar分為一個主jar和其他jar(不是我開發的)。 我有什么選擇?
您有幾種選擇,最簡單的方法( 並由官方文檔建議 )是僅提取胖子jar文件。
$ unzip -q myapp.jar
$ java org.springframework.boot.loader.JarLauncher
這樣做有兩個問題,首先,您的應用程序代碼現在將是一堆類文件(不在其自己的jar中)。
第二個問題是您仍在使用spring-boot加載程序,該加載程序不再提供太多實用程序,而且還會污染文件系統。
另一種選擇是更改構建以提供所需的內容。
使用gradle可以使用應用程序插件 ,對於maven,我建議使用appassembler插件 。
Appassembler生成目錄target/appassembler/
,其中包含帶有開始腳本的bin目錄和具有所有依賴項的repo目錄。
要使用它,您需要禁用spring-boot:repackage任務,並告訴appassembler插件您的主類是什么。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.10</version>
<configuration>
<programs>
<program>
<mainClass>com.example.MyMainClass</mainClass>
<id>myappname</id>
</program>
</programs>
</configuration>
</plugin>
</plugins>
</build>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.