SpringBoot开发的项目,由于内置了Tomcat,所以项目可以直接启动,部署到服务器的时候,直接打成 jar 包,就可以运行了,这篇文章主要介绍了SpringBoot项目如何打包成war包,需要的朋友可以参考:
一、修改 pom.xml 文件
首先需要修改pom.xml文件来更改打包的方式。默认情况下SpringBoot的打包方式是jar,但要打成WAR包需要将其改为war。如图所示:
<!-- <packaging>jar</packaging>-->
<packaging>war</packaging>
排除SpingBoot内置的tomcat,意思是不将内置的tomcat打包到war包中。
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 打war包排除内置的tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
添加tomcat依赖,需要用到 servlet-api 的相关 jar 包
<!--添加tomcat依赖打war包需要-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- tomcat范围改成provided,否则后面就会出问题,tomcat无法解析jsp -->
<scope>provided</scope>
</dependency>
二、 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
我这里的主类是BigEventApplication,需要extends 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 BigEventApplication extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(BigEventApplication.class);
}
public static void main( String[] args )
{
SpringApplication.run(BigEventApplication.class,args);
}
}
三、执行清理和打包指令
这里可以在控制台执行清理打包命令,也可如图片所示,使用maven提供的工具通过点击进行清理、打包。
mvn clean package
四、然后。。。。。。
然后就没有然后了,嘿嘿嘿~