JavaRush /Java Blog /Random-TK /Taslama ýazýarys. SpringBoot goşuň we CI amalyny düzüň - ...

Taslama ýazýarys. SpringBoot goşuň we CI amalyny düzüň - "Java taslamasy A-dan Z"

Toparda çap edildi
Java taslamasyny döretmek baradaky seriýadan bir makala (beýleki materiallara baglanyşyk ahyrynda). Maksady esasy tehnologiýalary seljermek, netijesi telegramma bot ýazmak. Salam, gadyrly okyjylar. Öňki bölümde beýan edilişi ýaly meýilnama boýunça bararys. Biz eýýäm bir taslama döretdik we ony kod bilen doldurmagyň wagty geldi. Indi ähli meseleler aýratyn borçnama hökmünde goşular. Bu ýerde zerur zatlaryň hemmesini suratlandyraryn. Bir zady sypdyrsam ýa-da ýeterlik derejede suratlandyrmasam, teswirlerde soraň, jogap bermäge synanyşaryn."A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 1

JRTB-0M ýazýarys

Bu meselede geljekdäki işler üçin boş “SpringBoot” çarçuwasyny goşmalydyrys. Muny “SpringBoot + Flyway” baradaky makalada edişimiz ýaly ederis . Taslamany göçürip alyň , IDEA-da açyň we JRTB-0 atly täze şahamça dörediň . Muny nädip etmelidigini bu ýerde bir ideýa arkaly düşündirdim . Bu geljekde işimizi yzarlamagy aňsatlaşdyrar. Indi ussat"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 2 şahanyň ýokdugyny bilýärdiňizmi ? Indi bitarap - esasy diýilýär . Şonuň üçin biz öwrenişdik. Dogrusyny aýtsak, elmydama adyny ussa diýip üýtgedip bileris. Bahar Initializr- a gidýäris we botumyz üçin “SpringBoot” çarçuwasyny döredýäris. Häzirki wagtda hödürlenýän boot sprintiň iň ýaş wersiýasy 2.3.7, geliň. Aşakdaky sazlamalary aýratyn düşündirerin:"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 3
  • Taslama: Maven taslamasy - bu ýerde we şu ýerde eýýäm Maven hakda pikir alyşdyk . Şonuň üçin diňe öňki makalalarda aýan etmedik zatlarymy goşmaça suratlandyraryn. Şeýle “ak tegmiller” bar bolsa, elbetde)
  • Dil: Java - bu ýerde hemme zat düşnükli. Isleg bar bolsa, bu meseläni Kotlinde täzeden ýazyp bileris. Justaňy özüme Kotlin atly kitap satyn aldym, Kotlini bilelikde öwreneris))
  • Bahar aýakgaby: 2.3.7 - islendik meseläni aradan aýyrmak üçin hödürlenen iň kiçi wersiýany alýarys. Bu eýýäm ýüklemäniň düýbünden döwrebap görnüşi.
Taslamanyň maglumatlary:
  • Topar: com.github.javarushcommunity - bu ýerde ammar toparymyzyň ýerleşýän domenini saýlaýarys.
  • Artifact: javarush-telegrambot - taslamanyň iň ýokary beýany.
  • Ady: Javarush TelegramBot - ony şu ýerde doly ýazarys.
  • Düşündiriş: Javarush üçin jemgyýetden jemgyýete telegram boty - bu ýerde taslamanyň has jikme-jik beýany.
  • Paketiň ady: com.github.javarushcommunity.jrtb - bu ýerde eýýäm taslamanyň ady üçin gysgaltmany ulanyp bilersiňiz. Indi taslama şu bukjadan başlar. Näme üçin beýle köp? Synp ýoluna başga taslamalary goşanymyzda, olar dürli paketlerde bolarlar. Hersiniň özboluşly usuly bar. OOP ýörelgelerini saklamak möhümdir.
  • Gaplamak: banka biziň standartymyzdyr)
  • Java: 11 - bir ädim öňde bolarys. Sekizinji Java-dan soň täzelikleri ulanaryn öýdemok, ýöne goýsun. Iýmit soramaýar) ... bu karar geljekde bize kiçijik Pasha ýumurtgasyny berer)
Häzirlikçe baglylyk goşmarys. Bu mesele üçin bize zerurlyk ýok. Bularyň hemmesini dolduranymyzdan soň (şu ýerde döredilen taslama baglanyşyk"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 4 bar): Dolduryp, GENERATE düwmesine basyň we arhiwdäki ähli içerki taslamamyzy goşuň. "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 5Taslama faýl goşuň. Netijede, bizde bir programma bar. Asla gurnalandygyny ýa-da ýokdugyny barlamak üçin terminala gidiň we ýazyň: $ mvn arassa paket"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 6 Şu ýerden edil şonuň ýaly bolsa, hemme zat gowy: taslama ýygnandy we jarnik eýýäm maksat bukjasynda taýýar. Bu pursatda düşündirişiň içindäki mesele taýýar. Bu ýönekeý, şeýlemi? Şonuň üçin biz öz şahamçamyza borçlanýarys we itekleýäris: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 7Işimiziň haýsy meseläniň çäginde edilendigi belli bolar ýaly, borçnamanyň beýanynyň başynda öz işimiziň adyny goşýarys. “Commit and Push” düwmesine basyň ... "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 8reperli ammardan uzakdaky birine nämäni basjakdygymyzy ýene bir gezek gözden geçirýäris we hemme zadyň gowydygyna göz ýetirip, “ Push” düwmesine basyň . Indiki ädimimiz näme? Ruleshli düzgünlere laýyklykda ( bu makalada , GitHub akymy barada bölekde okap bilersiňiz) esasy şaha üçin çekiş haýyşyny döretmeli we topardan biriniň kody gözden geçirmegine garaşmaly. Özüm bolanym üçin, çekiş haýyşyny resmi taýdan dörederin we hemme zady täzeden gözden geçirerin. Ammar sahypasyna girýärin, Github eýýäm goşmaçamyzyň bardygyny bilýär we çekmek haýyşyny döretmegi teklip edýär: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 9Watançylar üçin hiç hili päsgelçilik ýok (c) - teklip edilişi ýaly döredýäris. Işleýän işimizdäki ýaly belligi, taslamany goýýarys we düşündirişini doldurýarys: Çekiş haýyşyny döretmek"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 10 düwmesine basyň .

CI amalyny düzmek

Döredilen çekiş haýyşyna geçýäris: aşakda üznüksiz integrasiýa konfigurasiýasynyň ýokdugyny görýäris (mundan beýläk - CI). "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 11Dogry, düzülenok, näme? Näme üçin bize CI gerek? Her niçigem bolsa CI näme? Bu, häzirki wagtda bizi gyzyklandyrmaly soraglaryň sanawy. Umuman aýdanyňda, CI kody umumy kod bazasyna birleşdirmek we ondan ozal taslamanyň gurluşyny dowam etdirmekdir. Gurluşyk diýlip atlandyrylýar (Iňlis dilinden). Her gezek bir taslama guranymyzda, taslamanyň düzülendigine, ähli synaglarynyň üstünlikli geçendigine göz ýetirýäris, üstesine-de taslama gurlansoň, synagçylardan CI-e awtotestleri goşup bilersiňiz, bu ýörite binada işleýär. Şeýlelik bilen, täze üýtgeşmeleriň garaşyşymyz ýaly işleýändigine we öňki işleýşimizi bozmaýandygyna has ynamly bolýarys. CI hem gowy, sebäbi kod bazasy täzelenenden soň awtomatiki başlaýar. Changesagny, üýtgeşmelerimizi şaha geçirdik we proses başlandy - ýygnamak, synaglar, awtotestler we beýleki ädimler. Bu ädimleriň haýsydyr biri şowsuz bolsa, gurluşyk döwülen hasaplanýar we esasy şaha birleşdirilip bilinmez. Edil şu wagt etjek zadymyz: itekden soň kodumyzy işletjek GitHub Hereketlerini goşarys. GitHub hereketleri GitHub akymymyza gaty laýyk gelýär, şonuň üçin ony işimizi awtomatlaşdyrmak üçin ulanarys. Bu gural gaty güýçli we uludyr, ýöne häzirlikçe diňe gurluşy işletmek we zerur bolanda gurlandygyny barlamak üçin ulanarys. Ony işletmek üçin ammar sahypasyndaky Hereketler düwmesini tapyň we oňa eýeriň: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 12Bize zerur bolan üznüksiz integrasiýa işini tapyň: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 13Bu iş tertibini düzüň. Ondan soň, olaryň şablonyny ulanmagy teklip edýäris: doly ylalaşýarys, geliň hemme zady biraz aýdyňlaşdyralyň:
# 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 hereketiniň iki ýagdaýda çagyrylýandygyny görkezýär:
  1. Esasy şaha iteklenende.
  2. Esasy şahada çekmek haýyşy döredilende.
Iş bölümi ýerine ýetiriljek ädimleri suratlandyrýar. Bizde diňe bir ädim bar - gurmak. Taslamamyzyň Ubuntu-da mvn -B paketi --file pom.xml buýrugy bilen işe giriziljekdigini görkezýär . Locallyerli edenimiz edil şu. Bu ýerde bir zady üýtgetmek isleseňiz, haýyş edýärin. Bu şablony ulanaryn, maňa ýeterlik bolar. Başlamak düwmesine basýaryn , prosesi düzmek üçin täze şahany dörediň we täze faýl teklip ediň . Emma gurluşyk prosesi ýykyldy ... "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 14Görşüňiz ýaly, 14-den soň şowsuz - gurmak. Bir zat bolana meňzeýär: geliň, ýygnaga gideliň we jikme-jikliklere seredeliň: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 15Şeýle ýady tapyp bilmedim diýilýär. Näme üçin? Ahhh, takyk! Sebäbi baş şahada üýtgeşmeler döretdik, ýöne wezipämiz entek ýok. Şonuň üçinem ýadyny tapmady ... Şonuň üçin indi aşakdakylary edýäris: bu maglumatlary ussa birleşdirýäris, soňra esasy şahany JRTB-0 birleşdirýäris, soň hemme zat gowy bolmaly. Github hereketleri üýtgän çekiş haýyşynda, çekmek haýyşyny basyň : Birleşmegi"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 16 tassyklaň . Soň bolsa, Github işleýän şahamçamyzy pozmagy maslahat berýär. Biz ret etmeýäris we pozmaýarys: Soňra, “SpringBoot” -dan esasy bölümden üýtgeşmeleri web sahypasyndan nädip çekip boljakdygyny tapmadym, şonuň üçin IDEA arkaly el bilen ederis."A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 17

1-nji ädim: Baş şahany ýerli ammarda täzeläň.

Esasy şaha gitmek, ctrl + t basmak we baş şahany täzelemek:"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 18

2-nji ädim: Baş şahadan JRTB-0 şahasyna üýtgeşmeleri birleşdiriň.

Geliň, JRTB-0-a geçeliň we esasysyny birleşdireliň."A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 19

3-nji ädim: üýtgeşmeleri iteklemek.

Ctrl + shift + k basyň we basyşy tassyklaň. Indi binanyň geçmegine garaşýarys we ýaşyl bolar!)) Againöne ýene gyzyl. Bu näme? Hereketler gündeligine girýäris we Java wersiýalarynda sinhronlaşmaýandygymyzy görýäris. GitHubActions-da 8-dir, ýöne 11-ni ulanýarys: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 20Indi iki wariant bar: ýa hereketleri düzediň, ýa-da wersiýasyny sekizinji ýere düşüriň. Birinji wariant, meniň pikirimçe has gowy we has dogry. Aýry-aýry borçnamalarda üýtgeşmeler girizýäris: Java 8 bilen däl-de, Java 11 bilen işläris. "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  “SpringBoot” goşmak we CI amalyny düzmek - 21Şondan soň, ahyrsoňy, hemme zat biziň üçin netije berdi we taslama üçin CI amalymyzy gurup bildik. Şeýle zatlar başlangyç etapda gurulmalydyr, soňundan bu barada alada etmeli dälsiňiz. Indi binanyň geçendigini görüp bilersiňiz we gorkman birleşip bilersiňiz:"A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 22

Ammardaky şahalar bilen iş gurmak

Şeýle hem ammarda şahamçalar bilen işleýän wagtyňyz düzgüni ýaly sazlap bilersiňiz. Esasy şahany gönüden-göni itekläp bolmaz ýaly, diňe çekmek haýyşlary arkaly etmek isleýärin we gurluşyk şowsuz bolsa (ýagny GitHub Hereketleri başa barmadyk bolsa, çekiş haýyşyny birleşdirip bolmaz ýaly etmek isleýärin) käbir ädim). Munuň üçin Sazlamalar düwmesini tapyň we Şahamçalary saýlaň : "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 23Häzirki wagtda şahalar üçin düzgün ýok, geliň, düzgün goşmak düwmesiniň üsti bilen täzesini goşalyň : "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  “SpringBoot” goşmak we CI amalyny düzmek - 24Bu ýerde sazlamalar kän, her kim öz islegine görä bir zat edip biler zerurlyklary. Gurluş birleşmezden ozal çekiş haýyşynda üstünlikli geçmegi üçin, birleşmezden ozal geçmegini talap etmek üçin bellik gutusyny goşuň we zerur ýagdaýy saýlaň. Häzirlikçe ýeterlik: soň bu ruly täzeläp, başga näme isleýändigiňizi görüp bilersiňiz. Bu ruly döretmek üçin Döret düwmesine basyň . "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşmak we CI amalyny düzmek - 25Ondan soň, ýene-de çekmek haýyşymyza barsak, çekimiziň indi zerur bellik edilendigini görüp bileris: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 26Geliň, ähli iş ýagdaýlaryny görkezýän taslama sahypamyzy barlalyň: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 27Haýsy meseläniň üstünde işleýändigini derrew görüp bilersiňiz. Mundan başga-da, iş eýýäm ýerine ýetirildi we wezipe kod gözden geçiriş ýagdaýynda.

JRTB-0 ýapmak

Indi çekmek haýyşyny taýýarladyk we munuň üçin CI taýýarladyk, iň soňky tapgyry tamamlamaly: meseläni ýapmaly, ony dogry ýagdaýa geçirmeli, tagtadaky taslamamyzdaky üýtgeşmelere serediň. Biziň çekmek haýyşymyz ussa birleşdirilmäge taýyn. Çekiş haýyşynda, birleşdirmek haýyşy düwmesine basyň : "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 28Üstünlikli birleşenden soň, ony pozup bilersiňiz we adatça edip bilersiňiz. Şahamçalaryň / borçnamalaryň arasyndaky üýtgeşmeleri görmegi aňsatlaşdyrmak üçin muny etmerin. Çekiş haýyşy birleşdirilen badyna, awtomatiki usulda taslama tagtamyzda ýerine ýetirilýär: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 29Iň soňky ädim, çekiş haýyşyna baglanyşyk bilen meseläni (meseläni) ýapmak: "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  SpringBoot goşuň we CI amalyny düzüň - 30Bu mesele awtomatiki usulda ýerine ýetirilýär tagta. "A-dan Z-a çenli Java taslamasy": Taslama ýazýarys.  “SpringBoot” goşmak we CI amalyny düzmek - 31Başlangyç edildi, birinji wezipe ýerine ýetirildi!

Netijeler

Kod ýazyp başladyk öýdýän, ýöne sazlamalar henizem zerur. Hawa, wagt gerek, ýöne taslama has ulurak we çylşyrymly bolanda ýüz esse tölär we hemme zady diňe bir borç bilen bozmajakdygyňyza kepillik gerek. Bularyň hemmesiniň bolýan ýerinde çekmek haýyşy şu ýerde . Belki, okasaň, eýýäm ýapylar. Bu gorkunç däl: ähli zerur maglumatlar baglanyşyk arkaly saklanar. Okanyňyz üçin hemmäňize sag boluň, ýakyn wagtda görüşeris. Has giňişleýin!

Tapgyryň ähli materiallarynyň sanawy bu makalanyň başynda.

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION