一、修改pom.xml文件
1.打开项目中的pom.xml文件,增加如下代码,代表项目打包成war包。
<packaging>war</packaging>
2.去掉运行环境中内嵌的Tomcat,增加如下代码:
<!-- 去掉内置的tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
注:
provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时候无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器以及提供,就不需要Maven重复地引入一遍。
以上这句话是指项目打包成war在运行环境中不使用内嵌的Tomcat,而测试环境中启动内嵌的Tomcat。
二、修改项目代码启动类
1.项目pom.xml配置完去掉内嵌的Tomcat之后,同时代码启动类中需要继承SpringBootServletInitializer类,实现configure方法。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class RunApplication extends SpringBootServletInitializer {
//本地内部测试启动可以使用
public static void main(String[] args) {
SpringApplication.run(RunApplication.class, args);
}
//外部Tomcat启动需要使用方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(RunApplication.class);
}
}
注:项目打成war包之后,可以直接放在外部的Tomcat中启动。访问项目的端口是外部的Tomcat设置端口,而不在是项目内部设置的端口了。
三、项目打war或者jar包去掉数据库校验方法是在pom.xml中配置如下
根据项目情况可加也可以不加,以下代码跟去掉内嵌tomcat无关联。
<skipTests>true</skipTests>