Java SpringBoot 项目部署

概述

Rainbond 支持构建 SpringBoot 单模块和多模块的项目,支持 Maven 和 Gradle 两种构建工具,并能自动识别项目类型。

项目识别策略

Java Maven 项目

  • 单模块项目 :当源代码根目录下存在 pom.xml 文件,且不存在 Dockerfile 文件时,Rainbond 会 将源代码识别为 Java Maven 项目
  • 多模块项目 :Rainbond 基于 pom.xml 文件内容识别多模块项目,包括构建命令和启动命令两个部分
  • 多模块识别规则

  • 模块定位 :根据根 POM 文件中的 modules 标签找到子模块的 POM 文件
  • 打包类型 :如果 pom.xml 中的 packaging 标签是 jar war ,就会提取模块名和生成的 Jar 包名。如果没有指定 packaging 类型,默认认为是 jar
  • 模块名 :模块名由父 POM 文件中 module 标签的值组成,用斜杠 / 分隔,比如 rbd-worker/rbd-thirdparty
  • Jar 包名 :默认情况下,生成的 Jar 包名是 ${artifactId}-*.jar (其中 * 表示版本号)。如果在 POM 文件中设置了 finalName ,则会使用 finalName 中的值
  • POM 模块 :如果 POM 中的 packaging pom ,并且该 POM 文件中有多个 module ,则会递归解析每个子模块
  • Java Gradle 项目

    平台根据源码根目录是否有 gradlew 文件或者 build.gradle 来识别为 Java Gradle 项目。

    部署前准备

    本地验证

    将项目部署到 Rainbond 之前,请按照以下步骤进行本地验证:

    源代码托管 :确保源代码托管于 Git 或 SVN 服务器

    检查构建环境 :确定 Maven 版本、JDK 版本

    mvn -v
    java -version
  • 清除本地缓存 :清除本地构建缓存
  • mv ${HOME}/.m2/repository ${HOME}/.m2/repository.bak
  • 执行构建测试 :使用 Rainbond 默认构建命令测试
  • mvn -DskipTests clean dependency:list install

    pom.xml 规范

  • SpringBoot 项目推荐使用 jar 包方式打包
  • 非 SpringBoot 项目推荐使用 war 包方式打包
  • 编译运行环境配置

    Rainbond 支持图形化定义编译运行环境,配置位于服务组件的构建源页面。 对这些配置的修改,需要通过构建来生效!

    配置项 说明
    禁用缓存 开启后下一次构建将移除所有存在文件,包括编译工具和依赖库
    OpenJDK版本 选择使用的 OpenJDK 版本,1.8, 1.9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 25
    Maven版 本 选择 Maven 版本,3.1.1, 3.2.5, 3.3.9, 3.5.4, 3.6.3, 3.8.8, 3.9.1
    Web服务器版本 仅适用于打包为War包的项目,jetty7, jetty9, tomcat7, tomcat8, tomcat85, tomcat9
    Maven配置 Maven 仓库配置,默认阿里云Maven仓库
    Maven构建参数 Maven 构建时的附加参数,自定义参数,如 -DskipTests
    Maven构建命令 Maven 构建执行的目标,自定义命令,如 clean dependency:list install
    MAVEN构建Java参数配置 构建过程中 JVM 内存配置,JVM 参数,如 -Xmx1024m
    启动命令 应用启动命令