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
第一种
1 <dependency>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-starter-web</artifactId>
4 <exclusions><!-- 移除嵌入式tomcat插件 -->
5 <exclusion>
6 <groupId>org.springframework.boot</groupId>
7 <artifactId>spring-boot-starter-tomcat</artifactId>
8 </exclusion>
9 </exclusions>
10 </dependency>
第二种
1 <!-- 如果使用第三方tomcat请增加scope -->
2 <dependency>
3 <groupId>org.springframework.boot</groupId>
4 <artifactId>spring-boot-starter-tomcat</artifactId>
5 <scope>provided</scope>
6 </dependency>
3.将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法
1 @SpringBootApplication
2 public class DemoApplication extends SpringBootServletInitializer {
3
4 public static void main(String[] args) {
5 SpringApplication.run(DemoApplication.class, args);
6 }
7
8 @Override
9 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
10 return builder.sources(DemoApplication.class);
11 }
12 }
4.使用mvn clean package,或者编辑器打包成war包