今天我想跟大家分享的是使用springboot如何创建可部署在外部Tomcat的war包?网上都讲了很多,不过我还是要记录一下:
springboot官方文档上面写的已经很清楚了(85.1 Create a deployable war file)
1、主类继承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、修改你的build配置以便你的项目生成war文件而不是jar文件。如果你使用了Maven并且使用了spring-boot-starter-parent这个类,你只需要修改pom.xml
的packaging 为war就可以了(不熟悉maven的同学可以先学习一下maven相关知识)
war
如果你使用Gradle,你需要修改build.gradle应用war插件
apply plugin: 'war'
3、该过程的最后一步是确保嵌入的servlet容器不会干扰将要部署WAR文件的servlet容器。为此,需要标记所提供的内嵌servlet容器依赖为provided。
maven配置
org.springframework.boot spring-boot-starter-tomcat provided
Gradle配置
dependencies { // … providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' // …}