将 CI/CD 构建到基于 Spring Boot 的 Java 应用程序中

将 CI/CD 构建到基于 Spring Boot 的 Java 应用程序中

浏览此深入教程,了解有关将持续集成/持续交付 (CI/CD) 构建到基于 Spring-Boot 的 Java 应用程序的更多信息。

什么是CI/CD

CI/CD 属于 DevOps,代表持续集成、持续交付/部署。CI/CD 自动化了传统上将新代码从提交到生产(例如构建、测试和部署)以及基础设施配置所需的大部分或全部手动人工干预。借助 CI/CD ,开发人员可以对代码进行更改,然后自动测试并推出以进行交付和部署。以实现停机时间最小化,代码发布速度更快。

持续集成(CI)

持续集成是在提交或合并代码时,自动测试每个更改,并自动启动构建。可以大大减少开发和运维人员的重复工作,可以在软件开发生命周期的更早阶段更轻松的发现并修复错误和安全问题。

持续交付(CD)

持续交付是一种软件开发实践,一般与持续集成结合使用,以自动化基础设置供应和应用程序发布过程。

一旦代码作为 CI 流程的一部分进行了测试和构建,持续交付将在最后阶段接管,以确保可以随时部署并将部署所需要的环境打包在一起。

通过持续交付,可以随时将构建的软件部署到生产环境。可以手动触发部署,也可以进行自动化部署。

持续集成/持续交付 (CI/CD) 是现代软件开发的一个关键方面,它为开发生命周期带来了效率、可靠性和速度。CI/CD 使开发人员能够自动构建、测试和部署软件,确保顺利、一致地集成更改。在基于 Spring Boot 的 Java 应用程序的上下文中,CI/CD 变得更加重要。Spring Boot 提倡约定胜于配置的范式,使创建独立的、生产级的基于 Spring 的应用程序变得容易。通过结合 CI/CD 实践,使用 Spring Boot 的开发人员可以简化部署管道,在开发过程的早期捕获错误,并以更快的发布周期交付高质量、可靠的软件。

本教程将指导读者在 Spring Boot 上下文中实现 CI/CD,使他们能够优化开发工作流程并以更高的效率交付强大的 Java 应用程序。

我很高兴能分享我在基于 Spring-Boot 的 Java 应用程序中构建持续集成/持续交付 (CI/CD) 的经验。首先,让我们建立将在本教程中学习的所有内容:

  1. 使用 Spring Initializr 创建 Spring Boot Java 应用程序。
  2. 创建 GitHub 存储库。
  3. 使用 Travis CI 和 Docker 实现 CI/CD。
  4. 添加 Codecov 以提供代码覆盖率。
  5. 使用 SonarCloud 编写出色的代码。
  6. 使用 GitHub site-maven-plugin 构建项目站点。
  7. 使用 heroku-maven-pluginHeroku 上部署应用程序。
  8. 管理主题。

渐渐地,我们会将徽章添加到 README.md 文件中,以便我们可以实时收到有关 Travis CI、Docker、CodecovSonarCloud 状态的通知。此外,我们还将添加许可证徽章。

准备好了吗?如果没有,请花时间更好地理解或做好准备,稍后继续阅读本文。代码可在此处获得。跟着操作一遍,它都是你的!

如何将 CI/CD 构建到基于 Spring Boot 的 Java 应用程序中

步骤 1:使用 Spring Initializr 创建 Spring Boot Java 应用程序

在这个项目中,我使用了Spring Tool Suite 4(STS 4)IDE;您可以自由使用您认为适合此项目的任何工具。STS 4 内置了 Spring Initializr,所以这就是我为这个项目选择它的原因。

这是 STS 4 深色主题的样子:

STS 4 - Home

单击 File -> New -> Spring Starter Project。

您将获得:

STS 4 - Form

请填写以下表格:

  • 名称:cicd-applied-to-spring-boot-java-app
  • 组: com.cicd
  • 工件:cicd-applied-to-spring-boot-java-app
  • 描述:在 Spring Boot Java 应用程序上实现 CI/CD
  • 软件包: com.cicd.cicd-applied-to-spring-boot-java-app

默认情况下:

  • 类型:Maven
  • 包装:jar
  • Java 版本:8
  • 语言: Java

您将获得:

STS 4 - Form completed

然后,单击**“下一步”。**

点击Spring Web

STS 4 - Spring Web

单击 Finish。 新项目将显示:

STS 4 - New project finally created

接下来,请打开CicdAppliedToSpringBootJavaAppApplication.java文件。

然后,我们可以添加一个基本端点:

STS 4 - CicdAppliedToSpringBootJavaAppApplication edited

右键单击 -> Run As -> Maven build:

STS 4 - Maven build

然后,您将收到:

STS 4 - Edit configuration

若要运行该应用,请添加以下内容:

目标 -> spring-boot:run

STS 4 - Goals

单击**“运行**”:

STS 4 - Run

最终结果可以在这里找到:http://localhost:8080/。

STS 4 - Final result

现在,进入下一步!

步骤 2:创建 GitHub 存储库

首先,您需要登录或注册。我已经是 GitHub 用户,所以我刚刚登录。您将被引导至主页:

GitHub - Home

要创建新的存储库,请单击绿色按钮“**新建”**或单击此处。然后,您将被引导到这里:

GitHub - New repository

请填写以下表格:

  • 存储库名称:cicd-applied-to-spring-boot-java-app(我选择设置与第一步中的工件字段相同的名称)
  • 描述:在Spring Boot Java App上实现持续集成/持续交付
  • 单击**“Public”(公共)。**
  • 单击 Initialize this repository with a README。
  • 选择 MIT 许可证。

为什么?这很简单。以下链接有助于更好地了解为什么需要 MIT 许可证。以下是如何选择开源许可证、开源许可证的工作原理以及如何将它们添加到您的项目中

稍后,我们将添加 .gitignore 文件。

然后,单击**“创建存储库**”:

GitHub - Repository form completed

这是新的存储库:

GitHub - New repository

我建议您添加一个名为 RESEARCHES.md 的文件。为什么?在从事项目时,您可能会遇到困难并需要寻求帮助。目标是在解决问题或修复错误时节省时间。

要创建它,请单击**“创建新文件”。** 然后,用 RESEARCHES.md 填充名称字段并按如下方式编辑文件。CI/CD 是研究的一个例子,链接代表结果。“##”使文本加粗。

GitHub - RESEARCHES.md

此外,单击页面底部的绿色按钮“提交新文件”

GitHub - Commit new file

这就是我们得到的:

GitHub - RESEARCHES.md is created

现在,请安装 GitGit 安装可以在这里找到)和 GitHub Desktop(GitHub Desktop 安装可以在这里找到)。

安装完这两个工具后,就可以克隆我们在第一步中开始的项目了。

打开 GitHub Desktop 并选择我们之前创建的仓库,如下所示:

单击 File -> Clone repository…

GitHub - Desktop clone repository

您将看到以下弹出窗口:

GitHub - Desktop pop-up

只需在搜索栏中填写“cicd;”,您就会在结果中找到存储库:“cicd-applied-to-spring-boot-java-app”:

GitHub - Desktop search bar

选择存储库,然后单击克隆

GitHub - repository selected

GitHub Desktop 正在克隆仓库:

GitHub - Cloning repository

存储库已克隆:

GitHub - Repository already cloned

在此阶段,打开存储库文件夹。这是我的路。

我的存储库文件夹包含三个文件:**LICENSE、**README.mdRESEARCHES.md,如下所示:

GitHub - Repository folder

是时候打开保存代码的文件夹了:

GitHub - STS 4 project folder

从代码文件夹复制内容并将其粘贴到存储库文件夹中。存储库文件夹如下所示:

Github - Repository folder changed 1

忽略文件和文件夹很重要。在处理项目时,我们不会直接修改这些文件。为此,我们将对存储库文件夹中的 .gitignore 文件进行一些更改。我使用Sublime Text来编辑该文件。

以下是在进行任何更改之前它应该是什么样子:

GitHub - .gitignore before

这是进行更改后的样子。

首先,添加:.gitignore。它应如下所示:

GitHub - .gitignore after

现在,这是文件夹存储库在 GitHub Desktop 上的样子:

GitHub - 5 changed files

在摘要字段中填写“首次上传”,然后单击“提交到主控版”:

GitHub - First Upload

那么下一步是什么?点击 Push origin

GitHub - Before push origin

存储库现已在 GitHub 上更新:

GitHub - up-to-date

步骤 3:使用 Travis CI 和 Docker 实现 CI/CD

**注意:**如果您不熟悉这些工具中的任何一个,请查看此 Travis CI 教程和 Docker 入门教程,以帮助您入门。

使用 GitHub 注册或登录,并确保 Travis CI 有权访问您的存储库。然后,创建一个名为 .travis.yml 的文件,其中包含 Travis CI 将遵循的说明:

起初,这是我得到的:

Travis - Create .travis.yml 1

然后,单击**.travis.yml**文件:

Travis - Create .travis.yml 2

这是 Travis CI 上的存储库:

Travis - First build passing

现在,我们将添加一个 Travis CI 徽章,以便我们收到有关更改等的通知。

要编辑 README.md 文件,请单击铅笔图标:

Travis - Click on pencil icon

我们将得到这个页面:

Travis - Opening README.md

添加此文本,但将“FanJups”替换为您的 Travis CI 用户名

Travis - Adding Travis build status

然后,添加提交描述“添加 Travis CI 徽章”,然后单击**“提交更改**”按钮:

Travis - Adding Badge Commit description

然后,我们得到:

Travis - Badge already added

重要的是要知道,对于您所做的每一项更改,Travis CI 都会触发构建并发送电子邮件。这是一个持续的过程:

Travis - Build related to adding badge

我们成功添加了 Travis CI 及其徽章。接下来,我们将重点介绍 Docker。

首先,登录或在 Docker Hub 上注册:

Docker - Docker Hub Home Page

单击**“创建存储库**”按钮:

Docker - Create Repository Page

按如下方式填写表格:

  • 名称:cicd-applied-to-spring-boot-java-app(GitHub 存储库名称)
  • 描述:在 Spring Boot Java 应用程序上实现持续集成/持续交付(GitHub 存储库说明)
  • 可见性:选择"Public"
  • 生成设置:选择“GitHub

单击**“创建**”按钮后:

Docker - Repository already created

是时候将我们的 Docker 存储库链接到我们的 GitHub 存储库了。单击 Builds

Docker - Builds

然后,单击**“链接到 GitHub**”:

Docker - Link source providers

选择 GitHub 存储库:

Docker - Selecting GitHub Repository

现在选择了 GitHub 存储库,我们需要进行一些更改:

  • 自动测试:选择 “Internal and External Pull Requests
  • 存储库链接:选择 “Enable for Base Image

Docker - Configuring builds 1

Docker - Configuring builds 2

点击保存

Docker - Github is now linked to Docker

我们成功地将 GitHub 存储库链接到 Docker 存储库。如果您需要有关 Docker 构建的帮助,此链接很有帮助。

下一步是什么?首先,我们将安装 Docker。然后,我们将对代码和 Travis CI 进行一些更改。

若要安装 Docker,请转到 Docker 的“入门”页,选择“**Docker for Developers”,**然后单击“下载桌面并学习教程”:

Docker - Download Desktop

若要确保已安装 Docker 并验证其是否正常运行,请打开命令行并编写“docker”。然后验证:

Docker - Command Line

现在,返回 IDE 或文本编辑器;我们将对代码进行一些更改。

创建名为“Dockerfile”的文件。总结一下我们目前所做的工作,Dockerile 在创建 Docker 镜像时很有用。为了更好地理解此文件的用途,此 Dockerfile 参考将为您提供帮助。

为了简单起见,我使用这个 Callicoder Dockerfile 示例并做了一些小的更改。Dockerfile 如下所示:

接下来,这是使用 STS 4 创建进程的 Dockerfile。

选择项目,然后单击**“新建 -> 文件”。**

用“Dockerfile”填充文件名字段,然后单击**“完成**”按钮:

Docker - Dockerfile 2

复制并粘贴前面介绍的 Dockerfile 的内容:

Docker - Dockerfile is ready

在对pom.xml进行一些更改之前,让我们先看看实际内容。

我们添加了 Spotify 的 dockerfile-maven-plugin 来将项目推送到 Docker Hub 上。

此外,我们添加了 maven-dependency-plugin,如上一篇文章“Spring Boot 和 Docker 入门”中所述,其中指出:

"…为了确保在创建 Docker 映像之前解压缩 jar,我们为依赖项插件添加了一些配置。

为了继续,我们将从 GitHub 存储库将 Travis CI 链接到 Docker。

你还记得你的Docker用户名和密码吗?好吧,您必须这样做才能继续。我们将在 Travis CI 中创建两个环境变量。

要到达那里,只需将此(https://travis-ci.com/GITHUBUSERNAME/cicd-applied-to-spring-boot-java-app)复制并粘贴到您的浏览器中。但是,请将 GITHUBUSERNAME 替换为您的正确用户名,或单击 README.md 中显示的 Travis CI 徽章:

Travis CI-Docker - Travis CI Badge

Travis CI-Docker - Travis CI repository

单击“更多选项”-“>设置”:

Travis CI-Docker - Travis CI Settings

Travis CI-Docker - Travis CI Environment variables

填写表格如下:

  • **名字:**DOCKER_PASSWORD
  • **值:**yourdockerpassword
  • 单击**“添加**”按钮
  • **名字:**DOCKER_USERNAME
  • **值:**yourdockerusername

单击**“添加**”按钮:

Travis CI-Docker - Docker environment variables added

要在 Docker 上部署,我们将使用 Spotify 解释的**“mvn deploy”。** Apache Maven 项目解释了 Apache Maven Deploy 插件作为用于*“将工件添加到远程存储库”*的插件的作用。DZone 之前介绍了如何使用管道或 Maven 作业发布 Maven 工件

但是我们不想将工件添加到远程存储库:我们只想将其部署在 Docker 上。因此,当我们调用部署阶段时,我们必须包含有效的 部分 POM。然而,这不是这里的目的。因此,我们将在 pom.xml 中添加此属性:

1

<maven.deploy.skip>true</maven.deploy.skip>

如果我们不添加此属性,则会发生以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project cicd-applied-to-spring-boot-java-app: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]

在这个阶段,是时候使用这两个 Docker 环境变量了。只需复制并粘贴此新**.travis.yml**并将其推送到 GitHub 上:

Travis CI-Docker - Updating .travis.yml

提交说明:“将 Travis CI 链接到 Docker”。

我们收到了一个漂亮的红十字和 Travis CI 徽章,这意味着一个美丽的错误!但现在忽略它:我们稍后会纠正它!

Travis CI-Docker - red cross

Travis CI-Docker - Red Travis CI badge faiilure

女士们,先生们,我很高兴向你们介绍:我们美丽的错误!只需转到 Travis CI 存储库并查看漂亮的构建日志:

命令“mvn deploy”以 1 退出。

Travis CI-Docker - mvn deploy failed

我们已经添加了 Travis CI 徽章。现在,是时候对 Docker 做同样的事情了。转到 Shields.io

在搜索栏上,输入“docker”。然后,我们将得到以下结果:

Travis CI-Docker - Shields.io 1

单击 Docker Cloud Build Status

Travis CI-Docker - Shields.io 2

如果我告诉你我们也会在这里得到一个错误怎么办?

没关系 - 只需填写以下表格:

Travis CI-Docker - Docker Build inaccessible

单击复制徽章 URL

现在,返回 GitHub 存储库并编辑 README.md。我们将添加以下 Docker 徽章:

Travis CI-Docker - Adding Docker badge

提交说明:“添加 Docker 徽章”:

Travis CI-Docker - Adding Docker badge commit description

我们都是这里的赢家。所以让我们把它做好!

之前,我们对pom.xml进行了更改并创建了一个 Dockerfile。

所有这些错误都是由于 Maven 不知道如何处理 Docker 上的部署,并且缺少 Dockerfile,因此无法推送映像。

现在是时候使用 GitHub Desktop 在 GitHub 上推送这些更改(Dockefilepom.xml):

Travis CI-Docker - Let's get it right

现在,我们有两个丑陋的绿色徽章,意味着成功!开玩笑!那真是太美了。

Travis CI - Docker - Success

可以肯定的是,请检查您的电子邮件。您应该已经收到两封电子邮件:一封来自 Travis CI,另一封来自 Docker。

在继续执行第三步之前,我们将在不仅使用 Docker 的情况下运行应用。只需记住将“fanjups”替换为您自己的 Docker Hub 用户名:

Travis CI - Docker - Running Docker Image

我收到以下错误:Invalid or corrupt jarfile /app.jar.。这都是关于编码的,所以我会将这两个属性添加到pom.xml中。

现在,是时候在 GitHub 上提交了。如果你对编写有用的提交消息感到困惑,DZone过去曾介绍过这个话题。

在再次运行应用之前,请务必使用 docker ps 列出所有容器。

然后检查“CONTAINER ID”,停止(docker stop “CONTAINER ID”),并将其删除(docker rm “CONTAINER ID”),因为它是持久的,正如这篇关于使用 Docker 的 Spring Boot 的文章所解释的那样。

然后,我们将再次运行该应用,以确保一切正常:

Travis CI - Docker - Running Docker Image Successfully 1

Travis CI - Docker - Running Docker Image Successfully 2

当我解决这个问题时,我很高兴!

核心步骤现已结束。我们已经成功实施了 CI/CD。现在,让我们添加一些有用的工具!

步骤 4:添加 Codecov 以覆盖代码

首先,请确保已在计算机上更新项目:

Codecov - Pull Origin 2

单击 Pull Origin

Codecov - Pull Origin 3

从 GitHub 文件夹中复制我们将在 IDE 中使用的修改后的文件,然后将它们粘贴到工作区中。在这种情况下,我们只会复制并粘贴pom.xml

不要忘记在 STS 4 上刷新项目,并尽一切努力包含更改。

为了更好地使用此工具,我们通过添加单元测试进行了一些更改。

首先,创建一个新包 — com.cicd.cicdappliedtospringbootjavaapp.controller。

其次,创建一个新的类HelloController.java并更改CicdAppliedToSpringBootJavaAppApplication.java,如下所示:

该文件夹如下所示:

Codecov - folder

在计算机上运行应用之前,可以跳过整个 dockerfile 插件,因为部署将在 Travis CI 管理的 GitHub 存储库上进行。

为此,只需将此选项 (-Ddockerfile.skip) 添加到您的 Maven 命令中,如 Spotify dockerfile-maven-plugin 的用法所述。最后,我们得到 mvn spring-boot:run -Ddockerfile.skip。

现在,使用 GitHub 登录或注册 Codecov。

单击“帐户”-“>存储库”->“添加新存储库”。

只需选择您的 GitHub 存储库或点击此链接 (https://codecov.io/gh/GITHUB_USERNAME/GITHUB_REPOSITORY)。但请记住将 GITHUB_REPOSITORY 替换为 cicd-applied-to-spring-boot-java-app,并将GITHUB_USERNAME替换为您的:

Codecov -  cicd-applied-to-spring-boot-java-app

上次,我们向 Docker 添加了两个环境变量。现在,我们还添加了 Codecov 环境变量:CODECOV_TOKEN。复制令牌并将其添加到 Travis CI 存储库。

我们通过添加 jacoco-maven-pluginpom.xml进行了一些更改。

返回到 GitHub 存储库,我们将编辑.travis.yml

现在 几点钟?Codecov 徽章时间!

转到您的 Codecov 存储库,然后单击 Settings -> Badge -> Copy(来自 Markdown)。

然后,转到 GitHub 存储库并将其粘贴到 README.md 中。

最后,将更改从计算机推送到 GitHub。

代码覆盖率 60%:

Codecov - Badge 60%

也许,您想停用覆盖范围并稍后激活它。如果是这样,请继续创建一个名为 codecov.yml 的文件。 现在,了解覆盖范围很有用,所以我将用“#”对每一行进行注释。

如果您想了解更多信息,请单击此处阅读文档。

现在,进入第 5 步!

第 5 步:使用 SonarCloud 编写出色的代码

首先,请登录或注册 GitHub。

单击 +(分析新项目或创建新组织) -> 分析新项目 -> 导入其他组织 -> 在 GitHub 上选择一个组织。(Analyze new project or create new organization) -> Analyze new project -> Import another organization -> Choose an organization on GitHub.

SonarCloud - Home

接下来,确保 SonarCloud 有权访问您的 GitHub 存储库。

现在我们回到 SonarCloud,选择一个密钥。我建议使用**“cicd-applied-to-spring-boot-java-app”**作为键。

然后,单击**“继续”->选择“免费计划”->“创建组织”->“分析新项目”->选择“GitHub存储库”->“设置->与Travis CI”->“提供并加密令牌”->“复制”。**( Continue -> Choose Free plan -> Create Organization -> Analyze new project -> Select your GitHub repository -> Set Up -> With Travis CI -> Provide and encrypt your token -> Copy.

返回到 Travis CI 并创建名为 SONAR_TOKEN 的 SonarCloud 环境变量**。** 作为值,粘贴刚刚复制的令牌。

现在,返回 SonarCloud 并单击“继续”-> 编辑.travis.yml文件 -> 选择 Maven 作为构建技术 -> 配置平台 -> 配置扫描程序 -> 复制。 Continue -> Edit your .travis.yml file -> Choose Maven as build technology -> Configure your platform -> Configure the scanner -> Copy.

我选择在 after_success 下编写 SonarCloud 脚本,而不是 script,因为我专注于此处的部署。您可以自由地将其放置在您想要的位置。

此外,创建一个名为 sonar-project.properties 的文件并对其进行如下编辑:sonar.projectKey=GITHUBUSERNAME_cicd-applied-to-spring-boot-java-app

返回 SonarCloud,然后单击 Finish。

最后,我们在 README.md 中添加了一个 SonarCloud 徽章**。**

若要获取其他项目的锁屏提醒,请使用 groupId:artifactId。

以下是已添加的 SonarCloud 徽章:

SonarCloud - Badge

步骤 6:使用 GitHub site-maven-plugin 构建项目站点

首先,请在计算机上打开pom.xml。我们添加:

  1. OAuth 令牌和 GitHub 服务器作为属性
  2. org.apache.maven.plugins:maven-site-plugin
  3. com.github.github:site-maven-plugin
  4. org.apache.maven.plugins:maven-project-info-reports-plugin
  5. 开发人员部分
  6. 组织部分
  7. issueManagement 部分
  8. 软件配置管理 (SCM) 部分

“重要的配置是允许从环境变量中读取 OAuth 令牌(摘自 pom.xml),”正如 Michael Lanyon 的博客所解释的那样。“若要创建令牌,请按照以下说明操作。”

复制令牌,然后创建名为 GITHUB_OAUTH_TOKEN 的新环境变量**。**

pom.xml推送到 GitHub 并通过在after_success下添加**“- mvn site”来编辑.travis.yml**。

推送所有更改后,将创建 gh-pages 分支和项目站点。 每次推送时,网站都会在必要时更新。

GitHub Site - gh-pages branch

若要查看站点,请单击**“环境”->“查看部署”(在“部署到 github-pages”下)。**

这是我的 GitHub 存储库的链接。

GitHub Site - Home

第 7 步:使用 heroku-maven-plugin 在 Heroku 上部署应用程序

来吧!登录或注册 Heroku。

Heroku - Home

单击**“新建”->“创建新应用”。** 要继续,请输入应用程序名称 (cicd-spring-boot-java-app)。cicd-applied-to-spring-boot-java-app 作为应用程序名称太长。选择一个区域,然后单击创建应用

接下来,单击“连接到 GitHub”。

搜索 GitHub 存储库。找到它后,单击**“连接”。**

选中**“等待 CI 通过后再部署(Wait for CI to pass before deploying)”。**

单击启用自动部署(Enable Automatic Deploys)

转到帐户设置。Account settings

Heroku - Account settings

复制您的 API 密钥并创建一个名为 HEROKU_API_KEY 的新 Travis CI 环境变量**。** 这是链接到此项目的最后一个环境变量。

Heroku - HEROKU_API_KEY

是时候编辑pom.xml并将其推送到 GitHub 了。我们添加:

  1. full-artifact-name 作为属性
  2. com.heroku.sdk:heroku-maven-插件

现在,我们专注于**.travis.yml。**

  1. 为了在 Docker Hub 上部署,我们使用了 *mvn deploy*
  2. 要在 Heroku 上部署,我们将使用 *mvn heroku:deploy*
  3. 为了在 Docker 和 Heroku 上进行部署,我们将重复部署阶段两次,并冒着超时的风险。
  4. 为了避免这种情况,我们只使用 *mvn heroku:deploy。*

我们成功地部署在 Heroku 上!万岁!现在,转到 https://cicd-spring-boot-java-app.herokuapp.com/。

Heroku  - Succeesful Deployment

现在,是时候进行最后一步了。

步骤 8:管理主题

进入最后阶段意味着什么!?在快速了解项目时,主题很有帮助。

返回到 GitHub 存储库,单击**“管理主题(Manage topics)“**然后添加所需的任何内容。

顺便说一句,我们在pom.xml的 README.md 和许可证部分添加了一个 MIT 许可证徽章!

Final GitHub Repository 1

Final GitHub Repository 2

结论

祝贺!你都完成了。总而言之,您学习了如何使用 MavenGitHubTravis CIDockerCodecovSonarCloudHeroku 在 Spring Boot Java 应用上实现 CI/CD。这是一个您可以免费使用的模板。

如果您感到困惑,请在评论中提问。我还建议根据需要多次阅读可用的文档。

代码可在此处获得。

以上我跟着操作了一遍,很有价值,所以做个分享,然后感谢原作者的分享

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值