springBoot打包成 war包并部署tomcat

本次以 springboot+maven 项目举例:

步骤1:  准备好tomcat容器 以及 jdk,为避免其他不必要问题,这里建议下载全新的tomcat.

本次搭配的是:  apache-tomcat-8.5.63  解压版  

                           jdk_1.8

框架:spring-boot 2.0.6

包管理工具:maven_3.3.9   

开发工具:idea

步骤2:pom  里面 3个步骤,一个class启动类的步骤,共4步:

    a:  打包方式war包格式,以下:

         <packaging>war</packaging>

  b: 忽略掉 springboot自带的tomcat:

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

c: 增加 servlet-api包:

<dependency>

            <groupId>javax.servlet</groupId>

            <artifactId>javax.servlet-api</artifactId>

            <version>3.1.0</version>

            <!-- provided表明该包只在编译和测试的时候用 -->

            <scope>provided</scope>

        </dependency>

注意  tomcat的版本 以及jdk的版本和增加的jar包搭配使用,如果配置不当,很可能会出现异常。

以上步骤完成之后:

         检查代码,比如  各个拦截器的配置,过滤器的配置,以及路径配置问题, 主要为防止 访问出现问题。

d: 设置主目录:

这个建议 新增加一个class类,平时调试用app启动类,打包就用此类

public class StartWeb extends SpringBootServletInitializer {

    @Override

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

        return builder.sources(StartApplication.class);

    }

}

注解:  StartWeb新建的类,继承  SpringBootServletInitializer 

重写  启动源: return builder.sources(StartApplication.class);

StartApplication   jar包启动的那个主类

步骤3,打包  并  运行


先 clean   然后 compile   再 package

然后就会生成 war包,把war包丢进   tomcat的webapps目录下,然后启动,即可。

访问路径参照  ip(本地)+(端口:tomcat server.xml配置的)+ /“war包名”/XX

本次在全打包过程中,出现过两个小问题:

    1-war包解压出错    2-tomcat启动但访问不了

在此: 建议:  1-使用全新的tomcat ,避免  使用旧的tomcat造成配置错误,引发不必要的排查

2- 代码中过滤器,拦截器,安全框架,属性配置文件检查,避免路径问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容