2021-01-23 spring boot 多module bootstrap war部署

背景

开发的项目是多模块的方式,工程结构如下图,接上文部署docker tomcat,因为要部署到tomcat上,所以spring-boot内置的tomcat等不能再使用,打包成war部署;
工程目录结构如下


目录结构

步骤

  1. 忽略掉spring-boot-starter-web引入的tomcat
  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--忽略内嵌tomcat,打包部署到tomcat-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

2 .引入开发环境下的tomcat,供开发使用

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <version>2.3.4.RELEASE</version>
            <scope>provided</scope> <!--关键是scope改为provided,在编译和测试时有效 -->
        </dependency>
  1. 继承SpringBootServletInitializer
    在启动类目录下新建子类继承SpringBootServletInitializer
public class FangJianAdminServletInitializer extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
    {
        return application.sources(FangJianAdminApplication.class);
    }
}
  1. 启动类模块中 bootstrap模块pom配置,新增build,其余模块的一定要删掉这个build
    <parent>
        <groupId>com.fangjian.resturant-admin</groupId>
        <artifactId>resturant-admin</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.fangjian.resturant-admin</groupId>
    <artifactId>bootstrap</artifactId>
   <packaging>war</packaging> #重点
……省略依赖管理……
<build>
        <finalName>resturant-rest</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.4.RELEASE</version>
                <configuration>
                    <mainClass>com.fangjian.resturant.admin.bootstrap.FangJianAdminApplication</mainClass>
                </configuration>

            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <!-- 把class打包jar作为附件 -->
                    <attachClasses>true</attachClasses>
                </configuration>
                <version>3.2.3</version>
            </plugin>
        </plugins>
    </build>
  1. 在parent的pom.xml中
  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

然后就可以打包了,
打包
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容