SpringBoot 2.x发布jar包瘦身自动分离 lib(依赖jar包组),方便快速更新发布jar
1、目前jar包现状
SpringBoot 2.x发布生成的jar包,每次修改更新时,需要包含依赖所有的jar包组,上传部署比较耗时。
文件比较大,主要原因是包含有一个文件夹 lib,里面是大量的依赖jar包组。
2、分离方法
jar包里面的 lib 文件夹分离:
打开 POM.XML
找到
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
换成:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<layout>ZIP</layout>
<!--这里是填写需要包含进去的jar,
必须项目中的某些模块,会经常变动,那么就应该将其坐标写进来
如果没有则nothing ,表示不打包依赖 -->
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
</plugin>
<!--拷贝依赖到jar外面的lib目录-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!--指定的依赖路径-->
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
此时 重新打包。。。
会发现 文件夹 target 里面 出现 (有了 lib)
部署 jar 到服务器
第一次 需要部署 lib 文件夹,以后不需要部署了(除非新增加了jar包)
运行程序:
java -Dloader.path=./lib -jar mainframe-1.0.0.jar
以后 更新 程序,只是 比较小的 mainframe-1.0.0.jar 了。