有關建立 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