springboot项目打war包流程

时间:2022-02-21 15:00:32

目前,前后端分离的架构已成主流,因此使用springboot构建应用是非常快速的,项目发布到服务器上的时候,只需要打成一个jar包,然后通过命令 : java -jar jar包名称即可启动服务了;

但在有些场景下,比如部署到外部的服务器的时候,客户方指定要以tomcat的形式启动服务的时候,即需要由服务提供方提供一个war包的时候,该怎么办呢?

一开始没有查找资料,自己差点准备使用传统的ssm框架改造服务的,后来思考和参考相关资料后,发现只需要挤出简单的配置和改造就可以做到,下面是记载将springboot项目改造打包成war的流程,算是一个简单的参考:

1.修改pom.xml文件将默认的jar方式改为war:

<groupId>com.example</groupId>
<artifactId>application</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--默认为jar方式-->
<!--<packaging>jar</packaging>-->
<!--改为war方式-->
<packaging>war</packaging>

2.排除springboot内置的tomcat干扰

<!--最终打成war包,排除内置的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.改造启动类

继承org.springframework.boot.web.servlet.support.SpringBootServletInitializer,实现configure方法:

以前的:

@SpringBootApplication
public class MainApp { public static void main(String[] args) {
SpringApplication.run(MainApp.class,args);
}
}

现在的:

@SpringBootApplication
public class MainApp extends SpringBootServletInitializer { public static void main(String[] args) {
SpringApplication.run(MainApp.class,args);
} @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MainApp.class);
}
}

4.pom文件中不要忘了maven编译插件

 <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

5.如果在idea的环境下,依次执行窗口里的 clean ,install即可,

springboot项目打war包流程

执行完毕后,可以看到war包已经生成了,默认是在target目录下,位置可以在pom文件中进行配置,

springboot项目打war包流程

即可!!