springboot将jar改成war

一、maven项目

1、修改pom文件

<packaging>warpackaging>

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

<dependency>
    <groupId>javax.servletgroupId>
    <artifactId>javax.servlet-apiartifactId>
    <version>3.1.0version> 
    <scope>providedscope>
dependency>

3、修改Application类

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文件:

mvn clean package

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

二、Gradle项目

1、修改build.gradle文件:

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

// apply plugin: 'org.springframework.boot'

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

apply plugin: 'war'

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

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

4、修改Application类

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文件

./gradlew clean build

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

你可能感兴趣的:(SpringBoot,spring,boot,jar,后端)