Spring Boot 应用打包

jar 包部署

配置打包命令

Idea下配置 clean compile package -Dmaven.test.skip=true 执行打包命令,target 目录得到待部署的项目文件。

注意:检查 pom.xml 配置的 package 是否是 jar

部署访问

打开命令窗口,进入 out目录 执行 java -jar *****.jar 命令部署打包好的jar包文件。

1
java -jar demo.jar

war 包部署

wer包形式部署web项目在生产环境中是比较常见的部署方式, war包需要在外部web容器中执行(比如外部的tomcat,jetty等),也是目前大多数web应用部署方式,这里对于Spring Boot Web项目进行打包部署步骤如下:

pom.xml 修改

应用类型修改

内嵌tomcat忽略

pom.xml 添加 spring-boot-starter-tomcat 依赖,并设置 scope 标签为 provided,这样打包成war包时会忽略掉内嵌的tomcat,把war包放到服务器的tomcat容器中,才不会产生冲突。

设置jar包或war包名称

修改加载文件

添加容器启动加载文件(类似于读取web.xml),这里通过继承 SpringBootServletInitializer 类并重写 configure 方法来实现,在部署项目时指定外部 tomcat 读取项目入口方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class Starter extends SpringBootServletInitializer {
public static void main(String[] args) {

System.out.println("SpringBoot 项目开始启动...");
SpringApplication.run(Starter.class);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Starter.class);
}
}

部署war包

将war包复制到tomcat的 webapp 目录下,启动外部tomcat,tomcat会自动解压war包到webapp目录下,访问路径是 tomcat基路径 + war包名称 + …