-种种原因不想使用SpringBoot 默认的打包方式 也就是Jar包 依然习惯使用war包但是 由于没有注意到SpringBoot 2.0新特性项目上来就用的2.0 就这样。踩坑了 下面总结下1.X 和2.0 的区别
1.x 由jar包转成war包需要注意
a. 启动类需要继承SpringBootServletInitializer 并重写 configure 下面给个例子
对!!!就是这样,代码这块咱们基本就改完了。
下面需要更改maven 依赖
首先将
<packaging>jar</packaging>
<!--改成-->
<packaging>war</packaging>
<!--去除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>
<!--并且添加servlet api-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--并且添加servlet api-->
<!--最后将 plugins 的 plugin 改成下面这样-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warName>elasticsearch</warName>
<!--为了屏蔽出现web.xml is missing 的问题-->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
好了!以上就是1.X 版本的方法。
下面说 springboot2.0 由jar包换成war 包的方法。
前几部跟上面一致,如果你正巧用的是toncat 5-7 那么恭喜你 你肯定起不来。还是乖乖的换成tomcat 8.5以上吧。。