最近帮同事做一个小系统,为方便开发所以使用了springboot进行开发。开发过程中也遇到了不少问题。其中之一便是,因为客户那边目前主要的部署方式还是使用tomcat,而不是使用jar命令,为便于统一管理,所以我们想让springboot项目也能打成war,进行发布管理。以下便是如何将springboot项目打成war包并发布至tomcat。
修改pom文件:
第一步,将打包方式由jar包改成war包
<packaging>war</packaging>
第二步,排除springboot内置tomcat
<!-- 将scope设置为provided表示打包时不会引入该jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
第三步,设置war打包名字,最好和项目名字对应,以便打包出来的名字和项目名字对应
<build>
<!--项目名字-->
<finalName>bgk</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
第四步,修改启动类
我们平常都是以main方法启动项目:
@SpringBootApplication
@EnableCaching
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
@SpringBootApplication
@EnableCaching
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
第五步:分别运行clean package 命令,即可打包成功,在target目录下找到war包。即可向正常发布war包一样将该项目部署至tomcat服务器
或者右击packge命令,选择Create选项,在加入clean命令,点击OK,然后运行按钮,即可开始打包。