才子佳人博客

我的故事我讲述

Spring Boot项目打包成WAR包的步骤
 
来源:xjh  编辑:xjh  2025-06-26

要把Spring Boot项目打包成WAR包,得对项目配置进行一些调整。下面详细介绍操作步骤:

1. 修改打包方式

在`pom.xml`文件里,把打包方式从默认的`jar`改成`war`:
```xml
<packaging>war</packaging>
```
2. 排除嵌入式Servlet容器依赖

为避免嵌入式Servlet容器和外部Servlet容器产生冲突,需要排除嵌入式Tomcat依赖。在`pom.xml`中添加如下配置:
```xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 排除嵌入式Tomcat依赖 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
```
3. 添加Servlet API依赖

添加Servlet API依赖,并且将其作用域设为`provided`,这样在运行时就会使用外部Servlet容器提供的实现。
```xml
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>
```
4. 修改主应用类

让主应用类继承`SpringBootServletInitializer`类,并重写`configure`方法,以便在Servlet容器中启动Spring应用上下文。示例如下:
```java
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class LabServerApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(LabServerApplication.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(LabServerApplication.class, args);
    }

}

```
5. 打包项目

方法1)使用Maven命令进行打包:
```bash
mvn clean package
```
执行完这个命令后,在项目的`target`目录下就会生成一个WAR文件,文件名格式通常为`项目名-版本号.war`。
方法2)使用Maven 工具按钮打包:
Maven 工具按钮-> 项目名-> 生命周期->点 clean->点 package->出现如下提示信息,表示打包成功。
......................
[INFO] Packaging webapp
[INFO] Assembling webapp [lab-server] in [E:lab-booking-server-warlab-server argetlab-server-1.0.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Building war: E:lab-booking-server-warlab-server argetlab-server-1.0.0-SNAPSHOT.war
[INFO] BUILD SUCCESS

6. 部署到Servlet容器

把生成的WAR文件复制到外部Servlet容器(如Tomcat)的`webapps`目录下,然后启动Servlet容器,容器会自动解压并部署这个WAR文件。

通过以上步骤,你的Spring Boot项目就能成功打包成WAR包并部署到外部Servlet容器中了。

分类:编程开发| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: