Artykuł z serii o tworzeniu projektu w Javie (linki do innych materiałów znajdują się na końcu). Jego celem jest analiza kluczowych technologii, efektem jest napisanie bota telegramowego. Witam Was drodzy czytelnicy. Jak opisano w poprzedniej części, pójdziemy zgodnie z planem. Stworzyliśmy już projekt i czas wypełnić go kodem. Teraz wszystkie problemy zostaną dodane jako osobne zatwierdzenia. Opiszę tu wszystko co niezbędne. Jeśli coś przeoczyłem lub nie opisałem tego wystarczająco jasno, pytaj w komentarzach, postaram się odpowiedzieć.
Piszemy JRTB-0M
W tym zadaniu musimy dodać pusty framework SpringBoot do przyszłej pracy. Zrobimy to w taki sam sposób, jak zrobiliśmy to w artykule o SpringBoot + Flyway . Pobierz projekt , otwórz go w IDEA i utwórz nową gałąź o nazwie JRTB-0 . Opisałem, jak to zrobić za pomocą pomysłu tutaj . Ułatwi nam to śledzenie prac w przyszłości. Czy wiesz już, że nie ma już gałęzi master ? Teraz nazywa się to neutralnie- głównym . Więc przyzwyczajamy się do tego. Chociaż szczerze mówiąc, zawsze możemy zmienić jego nazwę z powrotem na master. Przechodzimy do Spring Originizr i tworzymy framework SpringBoot dla naszego bota. W tej chwili najmłodszą oferowaną wersją boot sprintu jest 2.3.7, przyjmijmy to. Osobno opiszę następujące ustawienia:- Projekt: Projekt Maven - o Mavenie pisaliśmy już tutaj i tutaj . Dlatego dodatkowo opiszę tylko to, czego nie ujawniłem w poprzednich artykułach. Jeśli oczywiście są takie „białe plamy”)
- Język: Java - tutaj wszystko jest jasne. Jeśli jest chęć, możemy tę kwestię przepisać w Kotlinie. Właśnie kupiłem sobie książkę Kotlin w Akcji, wspólnie nauczymy się Kotlina))
- Spring Boot: 2.3.7 - bierzemy najmniejszą oferowaną wersję, aby wyeliminować wszelkie problemy. To już całkowicie nowoczesna wersja buta.
- Grupa: com.github.javarushcommunity – tutaj wybieramy domenę, na której hostowana jest nasza grupa repozytoriów.
- Artefakt: javarush-telegrambot - maksymalny opis projektu.
- Nazwa: Javarush TelegramBot – napiszemy ją tutaj w całości.
- Opis: Bot telegramowy dla Javarush od społeczności do społeczności - tutaj znajduje się bardziej szczegółowy opis projektu.
- Nazwa pakietu: com.github.javarushcommunity.jrtb - tutaj możesz już użyć skrótu nazwy projektu. Teraz projekt rozpocznie się od tego pakietu. Dlaczego tak dużo? Dzięki temu, gdy dodamy inne projekty do ścieżki klas, będą one w różnych pakietach. Każdy na swój niepowtarzalny sposób. Jest to ważne, aby zachować zasady OOP.
- Opakowanie: Słoik to nasz standard)
- Java: 11 – będziemy o krok do przodu. Nie sądzę, że po ósmej Javie skorzystam z innowacji, ale niech tak będzie. Nie prosi o jedzenie)... ta decyzja da nam w przyszłości małą wielkanocną jajko)
Konfigurowanie procesu CI
Przechodzimy do utworzonego pull requestu: poniżej widzimy, że nie mamy skonfigurowanej Continuous Integration (dalej – CI). Cóż, nie jest skonfigurowany, więc co? Po co nam w ogóle CI? Czym w ogóle jest CI? To w przybliżeniu lista pytań, które powinny nas w tej chwili niepokoić. Ogólnie rzecz biorąc, CI to ciągły proces łączenia kodu we wspólną bazę kodu i wcześniejsze uruchomienie kompilacji projektu. Tak zwana kompilacja (od angielskiego build). Za każdym razem, gdy budujemy projekt, upewniamy się, że projekt został skompilowany, wszystkie testy przeszły pomyślnie, a po zbudowaniu projektu możesz dodać autotesty od testerów do CI, które są uruchamiane na tej konkretnej kompilacji. Dzięki temu zyskujemy większą pewność, że nowe zmiany działają zgodnie z naszymi oczekiwaniami i nie psują dotychczasowej funkcjonalności. CI jest również dobre, ponieważ uruchamia się automatycznie po aktualizacji bazy kodu. Oznacza to, że przesunęliśmy nasze zmiany do gałęzi i rozpoczął się proces - montaż, testy, autotesty i inne etapy. Jeśli którykolwiek z tych kroków zakończy się niepowodzeniem, kompilacja zostanie uznana za uszkodzoną i nie będzie można jej połączyć z gałęzią główną. Dokładnie to teraz zrobimy: dodamy GitHub Actions, które po wypchnięciu uruchomią nasz kod. GitHub Actions idealnie wpasowuje się w nasz GitHub Flow, dlatego wykorzystamy go do automatyzacji naszej pracy. To narzędzie jest bardzo potężne i duże, ale na razie będziemy go używać tylko do uruchomienia kompilacji i sprawdzenia, czy jest zmontowane w razie potrzeby. Aby ją włączyć, znajdź przycisk Akcje na stronie repozytorium i postępuj zgodnie z nim: Znajdź przepływ pracy ciągłej integracji, którego potrzebujemy: Kliknij Skonfiguruj ten przepływ pracy. Następnie zaproponowano nam skorzystanie z ich szablonu: całkowicie się zgadzamy, po prostu wszystko trochę wyjaśnijmy:# 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
Oznacza to, że akcja GitHub jest wywoływana w dwóch przypadkach:
- Po naciśnięciu głównej gałęzi.
- Kiedy w gałęzi głównej tworzone jest żądanie ściągnięcia.
GO TO FULL VERSION