1、修改pom文件
1)、
<packaging>jar</packaging>
改为
<packaging>war</packaging>
2)、打包时排除tomcat.
添加
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。
3)、检查spring-boot maven 打包插件是否存在
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
如果没有这个插件,打出的WAR能启动,但是不会加载spring-boot的相关类
3、注册启动类
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } }
在spring-boot main方法启动类型继承SpringBootServletInitializer接口,并重写configure方法。
最后执行
mvn clean package -Dmaven.test.skip=true
会在target目录下生成:项目名+版本号.war文件,拷贝到tomcat webapps目录中启动即可。