今天我想跟大家分享的是使用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相关知识)
<packaging>war</packaging>
如果你使用Gradle,你需要修改build.gradle应用war插件
apply plugin: ‘war‘
3、该过程的最后一步是确保嵌入的servlet容器不会干扰将要部署WAR文件的servlet容器。为此,需要标记所提供的内嵌servlet容器依赖为provided。
maven配置
<dependencies> <!-- … --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- … --></dependencies>
Gradle配置
dependencies { // … providedRuntime ‘org.springframework.boot:spring-boot-starter-tomcat‘ // …}
原文地址:http://gz521.blog.51cto.com/4115318/1911292