Java layihəsinin yaradılması haqqında silsilədən məqalə (digər materiallara keçidlər sonundadır). Onun məqsədi əsas texnologiyaları təhlil etməkdir, nəticə teleqram botunu yazmaqdır. Salam, əziz oxucular. Əvvəlki hissədə təsvir edildiyi kimi , plana uyğun gedəcəyik. Artıq bir layihə yaratdıq və onu kodla doldurmağın vaxtı gəldi. İndi bütün məsələlər ayrıca öhdəliklər kimi əlavə olunacaq. Burada lazım olan hər şeyi təsvir edəcəyəm. Nəyisə qaçırsam və ya kifayət qədər aydın təsvir etməsəm, şərhlərdə soruşun, cavab verməyə çalışacağam.
JRTB-0M yazırıq
Bu tapşırıqda gələcək iş üçün boş bir SpringBoot çərçivəsi əlavə etməliyik. Bunu SpringBoot + Flyway haqqında məqalədə etdiyimiz kimi edəcəyik . Layihəni yükləyin , IDEA-da açın və JRTB-0 adlı yeni filial yaradın . Bunu bir fikir vasitəsilə necə edəcəyimi burada təsvir etdim . Bu, gələcəkdə işi izləməyimizi asanlaşdıracaq. Artıq master filialının olmadığını bilirdinizmi ? İndi neytral - əsas adlanır . Beləliklə, biz buna alışırıq. Baxmayaraq ki, düzünü desək, biz həmişə onun adını yenidən master deyə dəyişə bilərik. Spring Initializr- ə gedirik və botumuz üçün SpringBoot çərçivəsi yaradırıq. Hazırda təklif olunan boot sprint-in ən gənc versiyası 2.3.7-dir, götürək. Aşağıdakı parametrləri ayrıca təsvir edəcəyəm:- Layihə: Maven Layihəsi - biz artıq Maven haqqında burada və burada müzakirə etdik . Buna görə də, yalnız əvvəlki məqalələrdə açıqlamadıqlarımı əlavə olaraq təsvir edəcəyəm. Belə "ağ ləkələr" varsa, əlbəttə)
- Dil: Java - burada hər şey aydındır. İstək olarsa, bu məsələni Kotlin-də yenidən yaza bilərik. Mən indicə özümə Kotlin in Action kitabı aldım, Kotlini birlikdə öyrənəcəyik))
- Spring Boot: 2.3.7 - hər hansı problemi aradan qaldırmaq üçün təklif olunan ən kiçik versiyanı götürürük. Bu, artıq çəkmənin tamamilə müasir versiyasıdır.
- Qrup: com.github.javarushcommunity - burada biz depolar qrupumuzun yerləşdiyi domeni seçirik.
- Artefakt: javarush-telegrambot - layihənin maksimum təsviri.
- Adı: Javarush TelegramBot - tam olaraq burada yazacağıq.
- Təsvir: Javarush üçün icmadan icmaya Telegram botu - burada layihənin daha ətraflı təsviri var.
- Paketin adı: com.github.javarushcommunity.jrtb - burada artıq layihə adı üçün abbreviaturadan istifadə edə bilərsiniz. İndi layihə bu paketlə başlayacaq. Niyə bu qədər çox? Beləliklə, biz sinif yoluna başqa layihələr əlavə etdikdə, onlar fərqli paketlərdə olacaqlar. Hər biri özünəməxsus şəkildə. Bu, OOP prinsiplərini qorumaq üçün vacibdir.
- Qablaşdırma: Kavanoz bizim standartımızdır)
- Java: 11 - biz bir addım öndə olacağıq. Səkkizinci Java-dan sonra yeniliklərdən istifadə edəcəyimi düşünmürəm, amma olsun. O, yemək istəmir)... bu qərar bizə gələcəkdə kiçik bir Pasxa yumurtası verəcək)
CI prosesinin qurulması
Yaradılmış çəkmə sorğusuna gedirik: aşağıda biz Konfiqurasiya edilmiş Davamlı İnteqrasiya (bundan sonra - CI) olmadığını görürük . Yaxşı, konfiqurasiya edilməyib, bəs nə? Niyə bizə ümumiyyətlə CI lazımdır? Hər halda CI nədir? Bu, hazırda bizi narahat etməli olan sualların təxminən siyahısıdır. Ümumiyyətlə, CI kodu ümumi kod bazasında birləşdirən və ondan əvvəl layihənin qurulmasını davam etdirən davamlı bir prosesdir. Sözdə qurma (İngiliscə quruluşdan). Hər dəfə layihə qurarkən layihənin tərtib edildiyinə, bütün sınaqlarının uğurla keçdiyinə əmin oluruq, üstəlik layihəni qurduqdan sonra siz bu xüsusi quruluşda işləyən testerlərdən CI-yə avtotestlər əlavə edə bilərsiniz. Beləliklə, yeni dəyişikliklərin gözlədiyimiz kimi işlədiyinə və əvvəlki funksionallığı pozmadığına daha çox əmin oluruq. CI da yaxşıdır, çünki kod bazasını yenilədikdən sonra avtomatik olaraq işə başlayır. Yəni dəyişikliklərimizi filiala itələdik və proses başladı - montaj, sınaqlar, avtotestlər və digər addımlar. Bu addımlardan hər hansı biri uğursuz olarsa, quruluş pozulmuş sayılır və əsas filiala birləşdirilə bilməz. İndi edəcəyimiz şey tam olaraq budur: pushdan sonra kodumuzu işlədəcək GitHub Actions əlavə edəcəyik. GitHub Actions bizim GitHub Flow-a mükəmməl uyğun gəlir, ona görə də biz ondan işimizi avtomatlaşdırmaq üçün istifadə edəcəyik. Bu alət çox güclü və böyükdür, lakin hələlik biz ondan yalnız konstruksiyanı işə salmaq üçün istifadə edəcəyik və lazım olduqda yığıldığını yoxlayacağıq. Onu aktivləşdirmək üçün repozitor səhifəsində Fəaliyyətlər düyməsini tapın və ona əməl edin: Bizə lazım olan Davamlı İnteqrasiya iş prosesini tapın: Bu iş axınını quraşdırın üzərinə klikləyin. Sonra bizə onların şablonundan istifadə etməyi təklif edirik: biz tamamilə razıyıq, gəlin hər şeyi bir az aydınlaşdıraq:# 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
Bu, GitHub Fəaliyyətinin iki halda çağırıldığını göstərir:
- Əsas filiala təkan verildikdə.
- Əsas filialda çəkmə sorğusu yaradıldıqda.
GO TO FULL VERSION