网上各种说法都有,结果都不行,拜读了一下Sprint boot2 精髓中提供的部署方式,发现也是很坑爹,根本不起作用,最后自己各种测试终于搞定,在此记录:
总共四个步骤:
1. 修改pom.xml
<packaging>war</packaging>
2. 排除内置tomcat
<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>
3. 添加servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
4. 修改启动Application文件继承SpringBootServletInitializer,实现configure方法
@SpringBootApplication
public class Application extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DythRegionApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DythRegionApplication.class, args);
}
}
ok,这时就可以生产外部部署的war包了,如果使用的是IDEA开发的话,可以正常配置tomcat进行调试开发。