SpringBoot 项目打包时能打成 .jar 与 .war 包文件,.jar 使用 java -jar xx.jar 就可以启动, 而 .war 可以部署到 tomcat 的 webapps 中, 随 tomcat 的启动而启动.
SpringBoot 本身是内置 tomcat 的, 如果想部署到外部 tomcat, 就要做一些改变.
1. 在 pom 文件中将 packaging 改为 war
1 <packaging>war</packaging>
2. 在 maven 里排除 springboot 自带的 tomcat
第一种
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-Web</artifactId>
- <exclusions><!-- 移除嵌入式 tomcat 插件 -->
- <exclusion>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
第二种
- <!-- 如果使用第三方 tomcat 请增加 scope -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
- <scope>provided</scope>
- </dependency>
3. 将项目的启动类 Application.java 继承 SpringBootServletInitializer 并重写 configure 方法
- @SpringBootApplication
- public class DemoApplication extends SpringBootServletInitializer {
- public static void main(String[] args) {
- SpringApplication.run(DemoApplication.class, args);
- }
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
- return builder.sources(DemoApplication.class);
- }
- }
4. 使用 mvn clean package, 或者编辑器打包成 war 包
来源: http://www.bubuko.com/infodetail-3009911.html