Springboot多模块打包成war并部署在Tomcat

Springboot多模块打包成war
1、修改父模块

引入全部子模块

<modules>
    <module>xxx-commonmodule>
    ......
modules>

去除内置Tomcat

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-tomcatartifactId>
        exclusion>
    exclusions>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-tomcatartifactId>
    <version>2.3.6.RELEASEversion>
dependency>
2、修改启动类所在模块

修改打包方式

<packaging>warpackaging>
<build>
    <finalName>war名称finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
            <configuration>
                <mainClass>启动类地址mainClass>
            configuration>
        plugin>
    plugins>
build>

修改启动方式,继承SpringBootServletInitializer

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(StartApplication.class);
    }
}
3、部署在Tomcat

将xx.war放在webapps路径下,启动Tomcat,通过localhost://8080/war包名称/api访问

你可能感兴趣的:(java,spring,boot)