一般情况spring-boot-starter-web是自带tomcat(即springboot内嵌tomcat),所以打包直接生成jar包,用java -jar命令就可以启动。

但,有时我们希望用war格式的包,而不是jar格式的包。这就需要以下几步改造:

1.将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法

 @SpringBootApplication
public class Application extends SpringBootServletInitializer { @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
} public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}

2.在pom.xml文件中,project下面增加package标签

<packaging>war</packaging>

3.还是在pom.xml文件中,dependencies下面添加

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

注:<scope>provided</scope>表示在编译和测试时使用(不加它,打的包中会指定tomcat,用tomcat部署时会因tomcat版本报错;而加上它,打包时不会把内置的tomcat打进去)

还要注意:spring-boot项目使用的jdk版本要和tomcat的jdk版本一致(都是1.8);tomcat的lib中el-api.jar版本最好要是javax.el-api-3.0.0.jar版本,防止低版本冲突。

只需要以上3步就可以打包成war包,并且部署到tomcat中了。需要注意的是这样部署的request url需要在端口后加上项目的名字才能正常访问。

spring-boot更加强大的一点就是:即便项目是以上配置,依然可以用内嵌的tomcat来调试,启动命令和以前没变

最新文章

  1. vue2.0环境搭建
  2. 高性能网站架构设计之缓存篇(1)- Redis的安装与使用
  3. node.js使用汇总贴
  4. [ACM_模拟] ZJUT 1155 爱乐大街的门牌号 (规律 长为n的含k个逆序数的最小字典序)
  5. Linux命令的类型
  6. Java常用类库——Runtime
  7. 通往成功的钥匙--Web前端开发技术
  8. Obj格式解析以及在Unity3D下导入测试
  9. web-app1--移动端等比例代码
  10. sort()排序 collections.sort();
  11. 意外发现的大批量导入数据SqlBulkCopy类
  12. javascript 回到顶部 动画效果
  13. MyBatis:二级缓存原理分析
  14. CodeForces 868F Yet Another Minimization Problem(决策单调性优化 + 分治)
  15. mint linux 18.3 遇到“已安装的 post-installation 脚本 返回了错误号 127 ”问题的解决
  16. Hdoj 1374.Knight Moves 题解
  17. eclipse编译hbase 1.3.1(转)
  18. [ZJOI2011]最小割
  19. mac下安装、配置redies
  20. 【Unity】角色受伤后的闪烁(blink/flash)效果

热门文章

  1. Spoj-BLMIRINA Archery Training
  2. uva 11991 查询中容器的运用
  3. 拯救小矮人(codevs 2544)
  4. 洛谷 [P2964] 硬币的游戏
  5. Codevs 1021 玛丽卡==洛谷 P1186
  6. Java面试题集(六)
  7. 转 Linux命令-文件管理命令
  8. idea 自定义工具栏
  9. flowable资料
  10. Docker如何部署Python项目