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目錄下文件
image.png - 運行項目時需要指定依賴的存放路徑
nohup java -Dloader.path="./lib" -jar $JVM_OPS ${JAVA_BASE_SRC}/${PROJECT_JAR} &