SpringBoot默认的打包类型为“胖”包,顾明思议比较臃肿,打好的jar包中包含所有的运行时需要的依赖,一般存放在jar包中的
BOOT-INF\lib
文件夹中。我们直接可以通过java -jar ...
指令就可以运行我们的项目。
瘦包的原理大概是这样的,将项目运行时需要的依赖不再打包的时候打进我们的项目jar包中,而是存放在指定的目录,然后运行项目的时候指定依赖的位置即可。这样的好处就是我们的项目打包后会变的十分轻巧。
- 在pom中新增插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
这两个插件一个是用来收集项目运行时需要的依赖到指定的目录,这里指定目录为target\lib
下。
还有一个就是SpringBoot提供的打包工具,只不过加入打包时不需要将依赖打进项目的配置参数而已。
-
指定mvn package 打包后,target目录下文件
- 运行项目时需要指定依赖的存放路径
nohup java -Dloader.path="./lib" -jar $JVM_OPS ${JAVA_BASE_SRC}/${PROJECT_JAR} &