IDEA将SpringBoot项目打成war包的两种方式
方式一
第一步.
在pom.xml文件中加上
大概在这个位置
第二步.
将此处scope标签里的内容改成provided,这样表示在编译时使用内置tomcat 但是打包时不加上这个tomcat的jar包 使用外置的tomcat 防止冲突
第三步.
在Application启动类的同级目录下创建一个ServletInitializer.java的文件(直接在springboot启动类上继承重写方法也行)
/** * 生成war包后的注册启动类 */ public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(DemoApplication.class); } }
第四步.

方式二
第一步.
在pom.xml文件中加上
大概在这个位置
第二步.
排除内置tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除内置tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
第三步.
添加一个依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
第四步.
修改启动类内容,继承SpringBootServletInitializer类,重写configure方法
public class DemoApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(DemoApplication.class); } }
第五步

原文地址:https://blog.csdn.net/weixin_44844288/article/details/107813391

浙公网安备 33010602011771号