Spring Boot 2.5.4 + Nacos 配置中心,如何用 Cloud Native Buildpacks 和 GitLab CICD 打包服务镜像?

摘要:spring-boot 2.5.4,nacos 作为配置、服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CICD 本文主要介绍 Java 通过 Cloud Native Buildpacks 打包镜
spring-boot 2.5.4,nacos 作为配置、服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CI/CD 本文主要介绍 Java 通过 Cloud Native Buildpacks 打包镜像,通过 Gitlab 配置 CI/CD。以及使用 nacos 作为配置中心,使用 grpc 作为 RPC 框架。 前置条件: JDK 版本:1.8 gradle 版本:7.1 spring-boot 版本:2.5.4 nacos 版本:1.3.1 GitLab 配置 spring-boot gradle 插件 spring-boot gradle 插件在 gradle 中提供 spring-boot 支持。该插件可以打 jar 或者 war 包。 plugins { id 'org.springframework.boot' version '2.5.4' } 新建一个 gradle 项目,该项目在只引用 id 'org.springframework.boot' version '2.5.4' 插件的情况下,gralde 任务分布完全没有变化,如下图所示。 引入 java 插件 plugins { id 'java' id 'org.springframework.boot' version '2.5.4' } 但当引入 java 插件后,情况就大大不同了,可见,spring-boot 插件和 java 插件一起应用后,将产生如下反应: 创建bootJar任务,执行该任务会生成一个 fat jar。该 jar 包把所有的类文件打包进 BOOT-INF/classes 中,把项目依赖的所有 jar 包打包进 BOOT-INF/lib 中。 配置 assemble 任务,该任务依赖于 bootJar 任务,所以执行 assemble 任务的时候也会执行 bootJar。 配置 jar 任务,该任务可以配置 jar 包的 classifier。配置方式如下,默认情况下 classifier 为空字符串: bootJar { classifier = 'boot' } jar { classifier = '' } 创建 bootBuildImage 任务,该任务可以使用 CNB 打包 OCI 镜像。后面会详细介绍如何使用 CNB。 创建 bootRun 任务用于运行应用程序。 创建 bootArchives 配置,注意这里是配置,不是任务。当应用 maven 插件时会为 bootArchives 配置创建 uploadBootArchives 任务。bootArchives 默认情况下包含 bootJar 或 bootWar 任务生成的文件。 uploadBootArchives { repositories { mavenDeployer { repository url: 'https://repo.example.com' } } } 创建 developmentOnly 配置。该配置用于管理开发时的依赖,比如 org.springframework.boot:spring-boot-devtools,该依赖仅在开发时使用,无需打进 jar 包中。 dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' } 创建 productionRuntimeClasspath 配置。它等价于 runtimeClasspath 中的依赖减去 developmentOnly 配置中的依赖。 配置 JavaCompile 任务默认使用 UTF-8。 配置 JavaCompile 任务使用 -parameters 配置编译器参数。 引入 io.spring.dependency-management 插件 引入该插件后,将自动管理依赖版本。
阅读全文