SpringBoot 配置jar 打包和war 打包

在Spring Boot项目中,可以通过修改pom.xml文件来配置项目打包成JAR或WAR文件。Spring Boot应用默认打包成可执行的JAR文件,但如果想要将其打包成WAR文件以便部署到传统的Servlet容器中(如Tomcat),需要做一些额外的配置。

打包成JAR

对于大多数Spring Boot应用来说,默认配置(即不打任何特殊配置)就会生成一个可执行的JAR文件。这个JAR文件包含了应用的所有依赖、类文件、资源文件以及一个嵌入式的Servlet容器(如Tomcat、Jetty或Undertow)。

如果想要确认或确保应用是打包成JAR文件,可以检查pom.xml文件中的<packaging>标签是否设置为jar(这通常是默认的):

<packaging>jar</packaging>

打包成WAR

如果想要将Spring Boot应用打包成WAR文件,以便部署到外部的Servlet容器中,需要做以下几步配置:

1. 修改<packaging>war

pom.xml文件中,将<packaging>标签的值从jar改为war

<packaging>war</packaging>

2. 排除内置的Servlet容器

由于WAR文件将部署到一个外部的Servlet容器中,需要从项目的依赖中排除内置的Servlet容器(如Tomcat、Jetty)。这可以通过在pom.xml中添加<exclusions>来实现。

对于Tomcat,可以添加如下配置到你的spring-boot-starter-web依赖中(或者任何包含嵌入式Servlet容器的starter):

<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-web</artifactId>  
    <exclusions>  
        <exclusion>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-tomcat</artifactId>  
        </exclusion>  
    </exclusions>  
</dependency>

注意:如果使用的是其他嵌入式Servlet容器(如Jetty或Undertow),需要排除相应的starter。

3.配置Spring Boot的主类

当打包成WAR文件时,Spring Boot不会自动运行主类(即带有@SpringBootApplication注解的类)。相反,需要创建一个继承自SpringBootServletInitializer的类,并重写configure方法来指定Spring Boot的主类。

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

public class ServletInitializer extends SpringBootServletInitializer {  

    @Override  
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
        return application.sources(YourSpringBootApplication.class);  
    }  
}

YourSpringBootApplication替换为主类名。

4.(可选)配置Servlet容器

如果使用的是特定的Servlet容器(如Tomcat),并且需要对其进行额外的配置,可能需要在pom.xml中添加相应的Servlet容器依赖,并确保它的版本与Servlet容器版本兼容。然而,在大多数情况下,这一步是可选的,因为大多数Servlet容器都会自动处理这些配置。

5.构建项目

在命令行中,使用Maven的package命令来构建你的项目:

mvn clean package

这将生成一个WAR文件,可以将其部署到任何支持Servlet 3.0的容器中。

注意:将Spring Boot应用打包成WAR文件并不是Spring Boot推荐的部署方式,因为Spring Boot的设计初衷是为了简化部署和配置。然而,如果有特殊的需求(如与现有系统集成),将应用打包成WAR文件可能是一个可行的选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值