使用IDEA将springboot打成war包在tomcat运行

1 说明

SpringBoot内置tomcat使用起来很方便,打成jar包以后就可以直接运行,然而这样的运行方式还是有它的局限性的,没有外部独立的tomcat管理起来方便,而且如果有多个web应用,使用外部tomcat的优势也很明显。所以在这里我就给大家介绍一下在IDEA中如何将一个springboot应用打成war包部署到外部tomcat中。

2 步骤

2.1 修改打包的形式

将原来的jar包形式改为war包形式,也就是将pom.xml文件里的<packaging>jar</packaging>改成<packaging>war</packaging>。

2.2 修改导出war包的名称

在pom.xml文件的<build>节点下可以添加一个节点<finalName>用来指定最后导出war包的名称。

2.3 移除内置的tomcat插件

有两种方式:

一种是在pom.xml文件里找到spring-boot-starter-web依赖节点,在其中添加如下代码:

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

另一种方法是在pom.xml里面直接添加如下依赖项:

<!--部署成war包时开启↓↓↓↓--><
dependency>      
  <groupId>org.springframework.boot</groupId>      
  <artifactId>spring-boot-starter-tomcat</artifactId>     
  <scope>provided</scope>  
</dependency>      
<!--部署成war包时开启↑↑↑↑-->

2.4 修改启动类

例如我们以前的启动类是App,修改之前App如下:

修改之后App如下:

其中的变化就是继承了类SpringBootServletInitializer,然后添加了方法:

@Override  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {    
  return application.sources(App.class); 
 }

2.5 使用IDEA导出war包

在IDEA中点击【Build】——【Build Artifacts】,然后选择要打包的springboot工程,点击【Build】或者【ReBuild】,然后在工程的target目录下面会生成war包。

2.6 在tomcat中使用war包访问

将打好的war包放在tomcat的webapps目录下面,启动tomcat,war包会自动解压出一个和war包同名的文件夹,这个时候可以通过路径【http://ip:port/war包的名称】来访问springboot系统,如果需要修改配置的话可以在解压的文件夹中找到springboot的yml配置文件,修改其中的配置项,然后重启tomcat生效。

3 注意事项

3.1 tomcat版本

记得外部tomcat要使用8.5及以上的版本,不然支持不了springboot。

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

推荐阅读更多精彩内容