将springboot项目部署为war项目

springboot 带有内置Tomcat 服务器,可以直接将项目打包成jar运行,但是如果在需要把项目达成war包该怎么办呢?下面是将springboot项目部署为war项目的一些步骤

1、首先 在pom.xml中将打包形式 jar 修改为war

  <packaging>war</packaging>
1
2、将springboot内置的Tomcat依赖移除 ,需要注意的是,使用不同的模板引擎的时候,需要移除的依赖位置也不同,下面是原生的依赖和thymeleaf 模板引擎移除依赖的一些方法 (后面打包发现。 可以不需要在依赖中去除tomcat 依赖 直接添加)

 <dependency>
     <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
  </dependency>
1
2
3
4
5
就可以了

原生Tomcat依赖移除
1
  <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>
       <dependency>
     <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
  </dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
thymeleaf 模板引擎依赖移除
1
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3、将Tomcat依赖移除后,为了保证编译正确,还需要添加对 servlet-api 的依赖(开始使用的时候是需要加servlet-api的依赖的,但是在后面使用中发现,可以不添加该依赖)

    <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>7.0.42</version>
            <scope>provided</scope>
        </dependency>
1
2
3
4
5
6
4、设置,打包后的项目访问名称,在build节点里设置文件名 (这里是一个特别需要注意的地方,由于开始的时候是使用的单模块程序,所以可以对项目命名,但是在多模块打包中发现,如果添加项目名称 这个结点。打包好的程序在tomcat中运行的时候会发生错误,war 包的目录格式有问题)

</plugins>
        <finalName>项目名称</finalName>
    </build>
1
2
3
5、由于我们需要使用外部Tomcat服务器部署war包,所以不能使用创建项目的application.java 这个main方法了,需要重写一个类似于 web.xml 文件配置的方式来启动 Spring 应用上下文,此时我们需要声明一个类,这个类的作用与在 web.xml 中配置负责初始化 Spring 应用上下文的监听器作用类似。

/**
 * Created by Sean on 2017/9/5.
 */
public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(application名称.class);
    }
1
2
3
4
5
6
7
8
这样就可以将项目打包成war 包,并放入外部Tomcat就可以使用了。 
不过需要重点注意的地方是 项目中所有请求路径都必须加上上面步骤4所写的项目名。不然会访问不到路径。


--------------------- 
作者:Sean_zzZ 
来源:CSDN 
原文:https://blog.csdn.net/github_38151745/article/details/78707664 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值