springboot将jar改成war

一、maven项目

1、修改pom文件

xml 复制代码
<packaging>war</packaging>

2、添加Servlet API依赖,Spring Boot的Starter依赖通常会包含这个依赖,所以你可能已经有了,没有就需要添加

xml 复制代码
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version> <!-- 适用于Servlet 3.1规范的版本 -->
    <scope>provided</scope>
</dependency>

3、修改Application类

java 复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

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

4、构建WAR文件:

shell 复制代码
mvn clean package

这将生成一个WAR文件,通常位于target目录下。

二、Gradle项目

1、修改build.gradle文件:

注释掉Spring Boot插件的引用,因为在WAR打包中不再需要。

groovy 复制代码
// apply plugin: 'org.springframework.boot'

2、添加war插件,以告诉Gradle将项目打包成WAR文件。

groovy 复制代码
apply plugin: 'war'

3、添加Servlet API依赖,Spring Boot的Starter依赖通常会包含这个依赖,所以你可能已经有了,没有就需要添加

groovy 复制代码
dependencies {
    implementation 'javax.servlet:javax.servlet-api:3.1.0' // 适用于Servlet 3.1规范的版本
    // 其他依赖...
}

4、修改Application类

java 复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

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

5、构建WAR文件

shell 复制代码
./gradlew clean build

这将生成一个WAR文件,通常位于build/libs目录下。

相关推荐
宸津-代码粉碎机10 分钟前
Spring AI企业级实战|从RAG优化到Agent多工具调度
java·大数据·人工智能·后端·python·spring
吴佳浩12 分钟前
AI Infra 的真相:Go 没输,rust也不是取代
后端·rust·go
喵个咪28 分钟前
实时游戏网络协议深度对比:KCP vs WebRTC vs WebSocket
后端·websocket·webrtc
普通网友31 分钟前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
QuZero36 分钟前
Guava Cache Deep Dive
java·后端·算法·guava
invicinble1 小时前
关于flowable流程引擎技术栈相关
spring boot
leeyi1 小时前
SSE 实时推流 —— Token 怎么一个个蹦出来
后端·agent
leeyi1 小时前
ReAct 循环的 50 行 Go 实现,逐行拆解
后端·agent
leeyi1 小时前
HITL:让人类随时叫停 AI,并且能优雅地继续
后端·agent
用户34232323763171 小时前
采集网关的离线缓存与断点续传——当网络不可靠时,数据一条都不能丢
后端