问题
Spring Boot 项目jar包太大,上传服务器耗时太长
方案
将jar包中BOOT-INF 下的 lib 目录移出,打包时排除依赖jar,在启动时指定加载外部依赖jar目录
解决
- 正常maven打包
mvn clean package
- 使用解压工具打开jar包,并将BOOT-INF 下的 lib 目录拷贝至单独目录;
- 在项目pom.xml中添加/修改配置
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 此处为项目的主类路径 --> <mainClass>com.test.TestApplication</mainClass> <layout>ZIP</layout> <includes> <include> <!-- 排除所有Jar --> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins>
- 再次maven打包,可以发现jar包小了很多
mvn clean package
- 把打好的jar包与拷贝出的lib文件夹放在同一目录中,执行启动命令
java -Dloader.path="lib/" -jar xxx.jar