有关创建 Java 项目的系列文章中的一篇文章(其他材料的链接位于最后)。其目标是分析关键技术,结果是编写一个电报机器人。 问候,亲爱的读者。正如前一部分所述,我们将按计划进行。我们已经创建了一个项目,是时候用代码填充它了。现在所有问题都将作为单独的提交添加。我将在这里描述所有必要的内容。如果我错过了什么或者描述得不够清楚,请在评论中提问,我会尽力回答。
我们写JRTB-0M
在这个任务中,我们需要添加一个空的 SpringBoot 框架以供将来的工作使用。我们将按照有关 SpringBoot + Flyway 的文章中的相同方式执行此操作。下载该项目,在 IDEA 中打开它并创建一个名为JRTB-0的新分支。我在这里描述了如何通过一个想法来做到这一点。这将使我们更容易跟踪未来的工作。您是否已经知道不再有主分支?现在它被称为中立主。所以我们就习惯了。不过,说实话,我们总是可以将其重命名回 master。我们转到Spring Initializr并为我们的机器人创建一个 SpringBoot 框架。目前,提供的 boot sprint 的最新版本是 2.3.7,我们就采用它吧。我将分别描述以下设置:- 项目:Maven 项目- 我们已经在这里和这里讨论了 Maven 。因此,我将只额外描述我在之前的文章中没有透露的内容。当然,如果有这样的“白点”)
- 语言:Java - 这里一切都很清楚。如果有愿望,我们可以用 Kotlin 重写这件事。我刚刚给自己买了一本书《Kotlin in Action》,我们将一起学习 Kotlin))
- Spring Boot:2.3.7 - 我们采用提供的最小版本来消除任何问题。这已经是一款完全现代的靴子版本了。
- 组:com.github.javarushcommunity - 在这里我们选择托管我们的存储库组的域。
- 工件:javarush-telegrambot - 项目的最大描述。
- 名称:Javarush TelegramBot - 我们将在这里完整地写下它。
- 描述:从社区到社区的 Javarush 电报机器人- 这是该项目的更详细描述。
- 包名称:com.github.javarushcommunity.jrtb - 在这里您已经可以使用项目名称的缩写。现在项目将从这个包开始。为什么这么多?这样当我们将其他项目添加到类路径时,它们将位于不同的包中。每个人都有自己独特的方式。这对于维护 OOP 原则非常重要。
- 包装:罐装是我们的标准)
- Java:11 - 我们将领先一步。我不认为我会在第八个 Java 之后使用创新,但就这样吧。他不要求食物)……这个决定将来会给我们一个小复活节彩蛋)
设置 CI 流程
我们转到创建的拉取请求:下面我们看到我们没有配置持续集成(以下称为 CI)。嗯,还没配置,那又怎样?为什么我们需要 CI?CI到底是什么?这大约是我们目前应该关心的问题清单。一般来说,CI是一个将代码合并到公共代码库并在此之前运行项目构建的连续过程。所谓build(源自英文build)。每次构建项目时,我们都会确保项目已编译,所有测试均已成功通过,此外,构建项目后,您可以将测试人员的自动测试添加到在此特定构建上运行的 CI 中。这样,我们就更有信心新的更改会按我们的预期工作,并且不会破坏以前的功能。CI 也很好,因为它在更新代码库后自动启动。也就是说,我们将更改推送到分支中,然后流程开始 - 组装、测试、自动测试和其他步骤。如果这些步骤中的任何一个失败,则构建将被视为已损坏并且无法合并到主分支中。这正是我们现在要做的:我们将添加 GitHub Actions,它将在推送后运行我们的代码。GitHub Actions 非常适合我们的 GitHub Flow,因此我们将使用它来自动化我们的工作。该工具非常强大且庞大,但目前我们仅使用它来运行构建并检查它是否已根据需要进行组装。要启用它,请在存储库页面上找到“操作”按钮并按照它操作:找到我们需要的持续集成工作流程:单击“设置此工作流程”。接下来,我们被要求使用他们的模板:我们完全同意,让我们稍微澄清一下一切:# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn -B package --file pom.xml
这表明 GitHub Action 在两种情况下被调用:
- 当推送到主分支时。
- 当在主分支中创建拉取请求时。
GO TO FULL VERSION