加油
努力

部署Spring Boot项目需要提前安装哪些依赖?

部署 Spring Boot 项目时,是否需要提前安装依赖取决于你的部署方式。以下是常见的几种部署方式及其所需的依赖:


一、使用内置服务器(推荐方式)——打包为可执行 JAR 文件

Spring Boot 默认内嵌了 Tomcat(或其他如 Jetty、Undertow),因此你不需要单独安装 Web 服务器

所需依赖/环境:

  1. Java 运行环境(JRE 或 JDK)

    • 必须安装与项目编译版本匹配的 Java 版本。
    • 例如:如果你的项目是用 Java 17 编译的,则目标服务器必须安装 Java 17 或更高版本。
    • 安装命令示例(Ubuntu):
      sudo apt update
      sudo apt install openjdk-17-jre
  2. Maven 或 Gradle(仅在构建阶段需要)

    • 如果你在服务器上构建项目(不推荐),则需要 Maven 或 Gradle。
    • 更推荐的做法是在本地或 CI/CD 环境中构建好 JAR 包,然后上传到服务器运行。
  3. 无其他额外依赖(如 Tomcat、Nginx 等非必需)

    • 内嵌服务器已包含,直接运行即可。

部署步骤:

# 构建项目(本地)
mvn clean package

# 上传 jar 到服务器后运行
java -jar your-app.jar

二、部署到外部 Servlet 容器(如独立 Tomcat)

如果你选择将 Spring Boot 项目打包为 WAR 文件并部署到外部 Tomcat,则需要:

所需依赖/环境:

  1. 外部 Servlet 容器(如 Apache Tomcat)

    • 安装并配置 Tomcat(例如 Tomcat 9+ 对应 Java 11+)。
    • 下载地址:https://tomcat.apache.org/
  2. Java JDK/JRE

    • 同样需要匹配版本的 Java。
  3. 修改项目配置

    • 继承 SpringBootServletInitializer
    • 打包方式改为 war
    • 排除内嵌 Tomcat(可选)

示例 pom.xml 配置:

<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

部署步骤:

  • 构建 WAR 文件
  • 将 WAR 文件复制到 tomcat/webapps/ 目录
  • 启动 Tomcat

三、Docker 部署(现代化方式)

所需依赖:

  1. Docker 引擎

    • 在目标服务器安装 Docker。
    • 安装命令(Ubuntu):
      sudo apt install docker.io
      sudo systemctl start docker
      sudo systemctl enable docker
  2. JDK(在 Docker 镜像中自动包含)

    • 通常使用基础镜像如 openjdk:17-jre-slim
  3. Dockerfile 示例:

    FROM openjdk:17-jre-slim
    COPY target/your-app.jar app.jar
    ENTRYPOINT ["java", "-jar", "/app.jar"]
  4. 构建并运行:

    docker build -t my-spring-app .
    docker run -p 8080:8080 my-spring-app

四、云平台部署(如阿里云、AWS、Kubernetes)

  • 通常只需要:
    • 构建好的 JAR/WAR 或 Docker 镜像
    • 对应平台的 CLI 工具(如 kubectl、aliyun-cli)
    • 配置好资源配置、网络、数据库连接等

总结:最常见情况(JAR + 内嵌 Tomcat)

项目 是否必须
Java 运行环境(JRE) ✅ 必须
Maven / Gradle ❌ 仅构建时需要(建议本地构建)
Tomcat / Nginx / Apache ❌ 不需要(除非反向X_X或特殊需求)
Docker ✅ 可选,但推荐用于生产环境

💡 建议:在开发或 CI 环境中构建 JAR 包,上传到服务器后只需 java -jar xxx.jar 即可运行。

如有反向X_X、HTTPS、负载均衡等需求,可额外安装 Nginx、Let’s Encrypt 等工具,但这不属于 Spring Boot 运行的“必要依赖”。

如有具体部署场景(如 Windows 服务器、K8s、宝塔面板等),可以进一步说明,我可以提供更详细的指导。

云服务器