Ein Artikel aus einer Reihe über die Erstellung eines Java-Projekts (Links zu anderen Materialien finden Sie am Ende). Sein Ziel ist es, Schlüsseltechnologien zu analysieren, das Ergebnis ist das Schreiben eines Telegram-Bots. Grüße, liebe Leser. Wie im vorherigen Teil beschrieben , werden wir nach Plan vorgehen. Wir haben bereits ein Projekt erstellt und es ist Zeit, es mit Code zu füllen. Jetzt werden alle Issues als separate Commits hinzugefügt. Ich werde hier alles Notwendige beschreiben. Wenn ich etwas übersehe oder es nicht klar genug beschreibe, frage in den Kommentaren nach, ich versuche zu antworten.
Wir schreiben JRTB-0M
In dieser Aufgabe müssen wir ein leeres SpringBoot-Framework für zukünftige Arbeiten hinzufügen. Wir werden dies auf die gleiche Weise tun wie im Artikel über SpringBoot + Flyway . Laden Sie das Projekt herunter , öffnen Sie es in IDEA und erstellen Sie einen neuen Zweig namens JRTB-0 . Ich habe hier anhand einer Idee beschrieben, wie das geht . Dies wird es uns in Zukunft erleichtern, die Arbeit nachzuverfolgen. Wussten Sie schon, dass es keine Master- Filiale mehr gibt? Jetzt heißt es neutrally- main . Also gewöhnen wir uns daran. Obwohl wir es, um ehrlich zu sein, jederzeit wieder in „Master“ umbenennen können. Wir gehen zu Spring Initializr und erstellen ein SpringBoot-Framework für unseren Bot. Die derzeit jüngste angebotene Version des Boot Sprint ist 2.3.7, nehmen wir es mal. Folgende Einstellungen beschreibe ich gesondert:- Projekt: Maven-Projekt – Maven haben wir hier und hier bereits besprochen . Daher beschreibe ich zusätzlich nur das, was ich in den vorherigen Artikeln nicht preisgegeben habe. Wenn es solche „weißen Flecken“ gibt, natürlich)
- Sprache: Java - hier ist alles klar. Wenn der Wunsch besteht, können wir diese Angelegenheit in Kotlin umschreiben. Ich habe mir gerade ein Buch „Kotlin in Action“ gekauft, wir werden Kotlin gemeinsam lernen))
- Spring Boot: 2.3.7 – wir nehmen die kleinste angebotene Version, um etwaige Probleme auszuschließen. Dies ist bereits eine völlig moderne Version des Stiefels.
- Gruppe: com.github.javarushcommunity – hier wählen wir die Domain aus, auf der unsere Gruppe von Repositorys gehostet wird.
- Artefakt: javarush-telegrambot – maximale Beschreibung des Projekts.
- Name: Javarush TelegramBot – wir schreiben es hier vollständig.
- Beschreibung: Telegram-Bot für Javarush von Community zu Community – hier ist eine detailliertere Beschreibung des Projekts.
- Paketname: com.github.javarushcommunity.jrtb – hier können Sie bereits eine Abkürzung für den Projektnamen verwenden. Nun startet das Projekt mit diesem Paket. Warum so viele? Wenn wir also andere Projekte zum Klassenpfad hinzufügen, befinden sie sich in unterschiedlichen Paketen. Jeder auf seine ganz eigene Art und Weise. Dies ist wichtig, um die OOP-Prinzipien aufrechtzuerhalten.
- Verpackung: Glas ist unser Standard)
- Java: 11 – wir sind einen Schritt voraus. Ich glaube nicht, dass ich nach dem achten Java Neuerungen nutzen werde, aber lass es sein. Er bittet nicht um Essen)... diese Entscheidung wird uns in Zukunft ein kleines Osterei bescheren)
Einrichten des CI-Prozesses
Wir gehen zur erstellten Pull-Anfrage: Unten sehen wir, dass wir keine kontinuierliche Integration konfiguriert haben (im Folgenden: CI). Nun, es ist nicht konfiguriert, na und? Warum brauchen wir überhaupt CI? Was ist CI überhaupt? Dies ist ungefähr die Liste der Fragen, die uns in diesem Moment beschäftigen sollten. Im Allgemeinen handelt es sich bei CI um einen kontinuierlichen Prozess, bei dem Code in einer gemeinsamen Codebasis zusammengeführt wird und davor ein Build des Projekts ausgeführt wird. Der sogenannte Build (vom englischen Build). Jedes Mal, wenn wir ein Projekt erstellen, stellen wir sicher, dass das Projekt kompiliert wurde und alle seine Tests erfolgreich bestanden wurden. Außerdem können Sie nach dem Erstellen des Projekts Autotests von Testern zu CI hinzufügen, die für diesen bestimmten Build ausgeführt werden. Auf diese Weise können wir sicherer sein, dass die neuen Änderungen wie erwartet funktionieren und die vorherige Funktionalität nicht beeinträchtigen. CI ist auch gut, weil es nach der Aktualisierung der Codebasis automatisch startet. Das heißt, wir haben unsere Änderungen in die Verzweigung übertragen und der Prozess begann – Montage, Tests, Autotests und andere Schritte. Wenn einer dieser Schritte fehlschlägt, gilt der Build als fehlerhaft und kann nicht mit dem Hauptzweig zusammengeführt werden. Genau das werden wir jetzt tun: Wir werden GitHub Actions hinzufügen, die unseren Code nach dem Push ausführen. GitHub Actions passt perfekt in unseren GitHub Flow, sodass wir es zur Automatisierung unserer Arbeit verwenden werden. Dieses Tool ist sehr leistungsstark und umfangreich, aber wir werden es vorerst nur verwenden, um den Build auszuführen und zu überprüfen, ob er nach Bedarf zusammengestellt wurde. Um es zu aktivieren, suchen Sie die Schaltfläche „Aktionen“ auf der Repository-Seite und folgen Sie ihr: Suchen Sie den von uns benötigten Continuous-Integration-Workflow: Klicken Sie auf Diesen Workflow einrichten. Als nächstes wird uns angeboten, ihre Vorlage zu verwenden: Wir stimmen vollkommen zu, lassen Sie uns einfach alles ein wenig klären:# 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
Dies weist darauf hin, dass die GitHub-Aktion in zwei Fällen aufgerufen wird:
- Wenn ein Push zum Hauptzweig erfolgt.
- Wenn eine Pull-Anfrage im Hauptzweig erstellt wird.
GO TO FULL VERSION