转发:https://blog.csdn.net/x_san3/article/details/86514063
说明
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目录直接拷贝出来执行。