为什么要打成war包
spingboot打包部署时默认是jar包,其内置了tomcat服务器,打包项目时如果未做配置,默认使用的就是内置的tomcat,有时候考虑到项目需要集群部署或者进行优化时,就需要打成war包然后部署到外部的Tomcat服务器中,本文主要讲解springboot中如何进行打war包的操作
操作步骤
1.修改pom.xml文件将默认的jar方式改为war:
代码语言:javascript复制<!-- 默认的打包方式-->
<!-- <packaging>jar</packaging>-->
<!-- 改成打war包-->
<packaging>war</packaging>
2 排除内置的tomcat,有2种方式
- 1 通过exclusion标签来排除
<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>
- 2 通过添加tomcatjar包来操作
这个jar包的意思就是打包时将内置的tomcat给去除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
- 创建一个类继承SpringBootServletInitializer并实现configure方法
@SpringBootApplication
public class MeasApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MeasApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MeasApplication.class);
}
}
代码语言:javascript复制打包时最好指定一下打包的war名称在pom中配置一下,通过fileName标签
<build>
<finalName>meas</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
注意:使用外部Tomcat部署时此时tomcat的端口号需要在外部tomcat的servier.xml中来进行单独配置
https://blog.csdn.net/qq_33512843/article/details/80951741