SpringBoot 外部tomcat 打包成war包部署

项目部署前先填个坑,就是tomcat7.0部署SpringBoot的war包会出现一个错误

error creating bean with name 'defaultvalidator' defined in class path resource

所以部署前少填点坑将tomcat升级到8版本以上

接下来就修改我们Spring boot项目里面的启动类和maven依赖了

POM.XML在里面添加 <finalName>打包后war包的名称</finalName>
在这里插入图片描述

添加打包类型<packaging>war</packaging>
在这里插入图片描述
接下来是比较关键的依赖包和排除依赖包

<!--        添加外部tomcat的servlet-api服务-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>

移除tomcat依赖或者将tomcat依赖scope改为provide移除tomcat依赖

<dependency>

  <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-web</artifactId>

    <!-- 移除嵌入式tomcat插件 -->

    <exclusions>

      <exclusion>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-tomcat</artifactId>

      </exclusion>

    </exclusions>

</dependency>

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-tomcat</artifactId>

  <scope>provided</scope>

</dependency>

现在到我们的启动类了 我这里启动类名:Application

继承SpringBootServletInitializer类实现configure方法

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

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

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

接下来打包部署

将项目的maven 先 mvn clean 然后 mvn install 一下打包
打包成功在项目目录下就出现一个target文件其次找到下面的war包
在这里插入图片描述
把war拷贝到我们的外部tomcat文件的webapps目录下
在这里插入图片描述
在这里插入图片描述
因为我的tomcat一直是启动状态的拷贝下去的war包就会直接被编译

启动tomcat 访问项目

startup

我的tomcat环境变量配好的所以直接cmd里在这里插入图片描述在这里插入图片描述
启动后没有报错下面显示了tomcat的端口和关闭端口

项目就打包部署完成了,浏览器访问项目:http://localhost:端口号/war包名

猜你喜欢

转载自blog.csdn.net/jiehong1020/article/details/95611613