6、Spring Boot 2.x的打包部署

本文详细介绍SpringBoot应用的打包与部署过程,包括选择jar或war包格式,使用命令行或IDE工具进行打包,以及如何在本地服务器或Tomcat上部署应用。同时,介绍了热部署的概念及其实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过前面几篇文章,我们已经可以创建Restful的服务。下来我们就要对服务打包部署,并且及时监控服务的运行情况。本节内容一起来学习一下打包部署。

一、打包

在项目创建时,我们可以根据实际项目需要选择打包方式为jar包,还是war包。

<groupId>com.aicode.bgms</groupId>
<artifactId>aicode-bgms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

1、使用命令行打包

在命令行进入到项目的pom.xml文件所在目录,然后运行如下命令:

mvn package

运行完成后,即可以看到新生成了target目录。打包的成功的包文件。

如图所示:

 

2、使用IDE工具打包

使用intellij Idea打包直接运行maven下生命周期的package即可。

 

如果使用Eclipse进行打包的话,可以右键点击项目或项目的pom.xml文件,然后Run As——〉Maven Build,弹出如下对话框。

将Goals设置为compile,然后点击Run,这样IDE就会根据pom.xml的配置对项目进行编译。然后再次右键点击pom.xml,选择菜单Run As——〉Maven install。这样项目就会进行打包。打包完成后,在项目目录中的target下也会找到打包成功的jar文件或war文件。

 

二、部署

第一步,我们将项目进行了打包,下面对项目进行部署。

1、使用命令进行部署

将项目拷贝到要部署的服务器指定目录下。

运行如下命令:

java -jar aicode-bgms-0.0.1-SNAPSHOT.jar

java -jar aicode-bgms-0.0.1-SNAPSHOT.war

即可启动项目。

这里会使用项目内嵌的服务器(根据项目设置),如:Jetty或Tomcat进行部署。

 

2、使用Tomcat进行部署

如果创建项目时指定的打包方式为war的话,IDE会生成一个ServletInitializer.java文件,内容如下:

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(AicodeBgmsApplication.class);
    }
}

这样在项目部署后,Web容器就能够得到Spring Boot的启动文件信息,进而初始化相关内容,这样就可以启用Spring Boot的应用了。

打包后,把项目的jar包或war包文件复制到tomcat的webapp目录下,然后启动tomcat即可。

 

3、热部署

热部署,顾名思义,就是在应用在启动状态时对其进行升级更新,但不需要重新启动应用。

导入依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
	<!--为true表示不会传递依赖-->
	<optional>true</optional>
</dependency>

然后重新启动应用,这样当修改应用中的文件时,即可实现热部署。Spring Boot是通过LiveReload的支持实现热部署的。

下面是热部署相关的配置项:

#热部署相关配置start
#DEVTOOLS
#是否启用一个livereload.com兼容的服务器
spring.devtools.livereload.enabled=true
#服务器端口
spring.devtools.livereload.port=35729
#是否启用自动重启功能
spring.devtools.restart.enabled=true
#不重启服务的文件目录配置
spring.devtools.restart.eclude=resources/**,static/**,templates/**
#设置对路径变化进行监测的时间间隔(ms)
spring.devtools.restart.poll-interval=100
#在没有改变任何classpath的情况下,在重启被触发前的静默时长(ms)
spring.devtools.restart.quiet-period=400
#热部署相关配置end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值