【猿经验分享】如何使用IDEA将springboot打成war包在外部tomcat中运行
分类:计算机 | Spring | SpringBoot | 综合 1301
更新:2021-06-08 00:18:52编辑
1 说明
SpringBoot内置tomcat使用起来很方便,打成jar包以后就可以直接运行,然而这样的运行方式还是有它的局限性的,没有外部独立的tomcat管理起来方便,而且如果有多个web应用,使用外部tomcat的优势也很明显。所以在这里我就给大家介绍一下在IDEA中如何将一个springboot应用打成war包部署到外部tomcat中。
2 步骤
2.1 修改打包的形式
将原来的jar包形式改为war包形式,也就是将pom.xml文件里的
2.2 修改导出war包的名称
在pom.xml文件的
<!--打包的名称(jar或者war)-->
<finalName>WarName</finalName>
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。
猿导航
阅读排行榜
- 1vue和el-table使用经验-如何刷新表格数据10889
- 2three.js加载3D瓦片和3dtiles数据生成交互式地图的开源项目9453
- 3Microsoft Visual C++ Redistributable是什么,有什么作用?7183
- 4mybatis使用经验——mybatis-spring-boot-starter和mybatis的版本对应关系表(持续更新~)5761
- 5uni-app使用经验—vue页面和html页面如何互相调用接口并传参5438
- 6Spring学习经验—@ResponseBody注解的使用说明4847
- 7Intellij IDEA下的版本控制VCS的启用与关闭4793
- 8Druid异常解决经验—java.sql.SQLException url not set4468
- 9如何用批处理命令(bat脚本)启动和停止windows服务4232
- 10nuxt.js项目中如何添加和使用全局变量4099
- 11解决SpringBoot使用maven下载不了jar包的问题3453
- 12linux中解压tar.gz文件报错“gzip: stdin: invalid compressed data--format violated”3348
- 13nuxtjs asyncData使用经验—如何发起多个axios请求并携带参数3207
- 14在Nuxt.js项目的head中引用外部js文件3045
- 15在NVIDIA控制面板设置参数时提示“拒绝访问 无法应用选定的设置到您的系统”的解决方法之一3022