SpringBoot 工程部署 Jar 包
打包方式一:
特点:将项目代码和依赖库打包在一个 Jar 包中(这种方式打包和部署简单,但是 Jar 包较大,上传服务器更慢)
项目的 pom.xml 文件添加SpringBoot 打包插件如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
项目 Maven 工程中运行 package
插件命令进行打包,如下:
控制台显示打包成功信息如下:
...
[INFO] --- spring-boot-maven-plugin:2.7.15:repackage (repackage) @ SpringBootApp ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.593 s
[INFO] Finished at: 2024-11-19T16:06:16+08:00
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0
打包成功后将在项目的 target
目录下生成 Jar 包如下:
运行 Jar 包启动 SpringBoot 程序如下:
命令格式:java -jar xxx.jar
> java -jar SpringBootApp.jar
注:
clean
:用于删除 target 文件夹,重新进行打包
打包方式二:
特点:Jar 包中包含项目代码,依赖库放在外部 lib 文件夹中(这种方式打包和部署更复杂,但是 Jar 包较小,上传服务器更快)
将方式一打包得到的 Jar 包进行解压(如果不能直接解压,则将后缀改为 zip 再进行解压),我们只需要拿到 BOOT-INF
中的 lib 目录即可,如下:
项目的 pom.xml 文件添加 SpringBoot 打包插件如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.binge.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>
</plugins>
</build>
mainClass
,我们指定了项目的启动类layout
,我们指定了打包方式为 ZIP,注意:一定是大写的includes
,有自己的依赖 jar,可以在此导入repackage
,剔除其它的依赖,只需要保留最简单的结构
项目 Maven 工程中运行 package
插件命令进行打包,如下:
打包成功后将在项目的 target
目录下生成 Jar 包如下:
运行 Jar 包启动 SpringBoot 程序如下:
命令格式:java -Dloader.path=./lib -jar xxx.jar
>java -Dloader.path=./lib -jar SpringBootApp.jar
- -Dloader.path:设置项目所依赖的 jar 包位置