平常springboot项目默认打包成jar包,但是由于有时候我们需要将项目放在同一个tomcat下面运行,那么我们就需要将SpringBoot打包成war包。
具体操作:
1.修改pom.xml文件

<groupId>sf-carbon-emission</groupId>
<artifactId>sf-carbon-emission</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--<packaging>jar</packaging>-->
<packaging>war</packaging>2、去掉org.springframework.boot依赖中的tomcat内置容器

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>3. 新建一个SpringBootStartApplication 继承自 SpringBootServletInitializer
【注意】:这个新建的类,与springboot的启动类是同级的

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* Description:
* 打war包
* 2018-07-03 15:03
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(com.sf.carbon.emission.MainApplication.class);
}
}注意:SpringBootServletInitializer接口需要依赖 javax.servlet
在pom.xml中添加依赖:

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>4.然后,请不要用Intellij idea来打包项目为Jar,项目的根目录,然后用 mvn clean package 这个命令来打包,如图所示:

打包成功在target目录下即可看到war包


本文介绍如何将SpringBoot项目从默认的Jar包形式转换为War包形式,并部署到Tomcat服务器上。主要步骤包括修改POM文件设置War打包方式、排除内置Tomcat容器依赖、创建继承SpringBootServletInitializer的启动类及使用Maven命令进行打包。
232

被折叠的 条评论
为什么被折叠?



