大家都知道我们的springboot如果直接使用默认方式打包,将依赖和代码打包在一起,占用的内存很大,可能改代码2分钟,上传服务器半个小时,这个时候,就有jar包瘦身的需求了,它其实就是将依赖和代码分开打包,将依赖统一打包在lib目录下,代码打包成jar包,平时只要不修改依赖,我们就不需要重新上传lib,只上传jar包就好,好了,废话不多说,直接上代码
注意:这里需要根据自己的实际情况对启动类包路径进行修改,lib目录和jar包都在target目录下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.2.RELEASE</version>
<configuration>
<!--项目的启动类-->
<mainClass>sca.pro.upgrade.UpgradeApplication</mainClass>
<!--解决windows命令行窗口中文乱码-->
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<layout>ZIP</layout>
<!--配置需要打包进项目的jar-->
<includes>
<!--这里是填写需要包含进去的jar,
必须项目中的某些模块,会经常变动,那么就应该将其坐标写进来
如果没有则non-exists ,表示不打包依赖
-->
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!--此插件用于将依赖包抽出-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>7</source>
<target>7</target>
</configuration>
</plugin>
</plugins>
</build>
这里我们将lib目录和jar包上传到服务器上,我就不介绍了,直接说启动命令
nohup java -jar -Xms512M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSize=256M -Dloader.path=lib目录地址 jar包地址