0%

如何将Spring Boot项目打包部署到外部Tomcat

一、项目打包

项目开发结束后,需要打包部署到外部服务器的Tomcat上,主要有几种方式。

1.1 生成jar包

  • cd 项目跟目录(和pom.xml同级)
1
mvn clean package

排除测试代码后进行打包

1
mvn clean package  -Dmaven.test.skip=true

打包完成后jar包会生成到target目录下,命名一般是 项目名+版本号.jar

  • 启动jar包命令
1
java -jar  target/spring-boot-scheduler-1.0.0.jar

这种方式,只要控制台关闭,服务就不能访问了。下面我们使用在后台运行的方式来启动:

1
nohup java -jar target/spring-boot-scheduler-1.0.0.jar &

也可以在启动的时候选择读取不同的配置文件

1
java -jar app.jar --spring.profiles.active=product

也可以通过IDEA的Maven工具生成,点击Lifecycle-install,生成jar

1.2 生成war包

- 修改打包类型为war
1
<packaging>war</packaging>
- 添加spring-boot-starter-tomcat依赖,scope设置为provided
1
2
3
4
5
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
- 注册启动类

创建ServletInitializer.java,继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。外部web应用服务器构建Web Application Context的时候,会把启动类添加进去。

1
2
3
4
5
6
public class ServletInitializer  extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(BootdemoApplication.class);
}
}
- 同样也是两种方式执行:
  1. mvn clean package -Dmaven.test.skip=true

  2. 通过IDEA的Maven工具生成,点击Lifecycle-package,生成war

二、项目部署

  无论是用哪种方式生成,最终都是为了进行部署,war可以直接拷到tomcat的webapps目录下,启动Tomcat即可。