JavaRush /Java блогы /Random-KK /Біз жоба жазып жатырмыз. SpringBoot қосыңыз және CI проце...
Roman Beekeeper
Деңгей

Біз жоба жазып жатырмыз. SpringBoot қосыңыз және CI процесін орнатыңыз - «Java жобасы A-дан Я-ға дейін»

Топта жарияланған
Java жобасын жасау туралы сериядан мақала (басқа материалдарға сілтемелер соңында). Оның мақсаты – негізгі технологияларды талдау, нәтижесі – телеграмма ботын жазу. Сәлеметсіздер ме, құрметті оқырмандар. Алдыңғы бөлімде сипатталғандай , біз жоспар бойынша барамыз. Біз жобаны жасап қойдық және оны codeпен толтыру уақыты келді. Енді барлық мәселелер бөлек міндеттеме ретінде қосылады. Мен мұнда қажеттінің бәрін сипаттаймын. Егер мен бір нәрсені жіберіп алсам немесе оны жеткілікті түрде сипаттай алмасам, түсініктемелерде сұраңыз, мен жауап беруге тырысамын.«А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 1

Біз JRTB-0M жазамыз

Бұл тапсырмада біз болашақ жұмыс үшін бос SpringBoot құрылымын қосуымыз керек. Біз мұны SpringBoot + Flyway туралы мақаладағыдай жасаймыз . Жобаны жүктеп алып , оны IDEA бағдарламасында ашыңыз және JRTB-0 деп аталатын жаңа фorал жасаңыз . Мен мұны қалай жасауға болатынын осы жерде идея арқылы сипаттадым . Бұл бізге болашақта жұмысты бақылауды жеңілдетеді. Енді сіз негізгі«А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 2 фorал жоқ екенін білесіз бе ? Енді ол бейтарап - негізгі деп аталады . Осылайша біз үйренеміз. Шынымды айтсам, біз оны әрқашан шебер деп өзгерте аламыз. Біз Spring Initializr- ге өтіп , біздің бот үшін SpringBoot құрылымын жасаймыз. Қазіргі уақытта ұсынылатын жүктеу спринтінің ең жас нұсқасы - 2.3.7, оны алайық. Мен келесі параметрлерді бөлек сипаттаймын:«А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 3
  • Жоба: Maven жобасы - біз Maven туралы осында және осы жерде талқыладық . Сондықтан мен алдыңғы мақалаларда ашпаған нәрселерді қосымша сипаттаймын. Егер мұндай «ақ дақтар» болса, әрине)
  • Тіл: Java - мұнда бәрі түсінікті. Егер тілек болса, біз бұл мәселені Котлинге қайта жаза аламыз. Мен өзіме жаңа ғана Котлин әрекеттегі кітабын сатып алдым, біз Котлинді бірге үйренеміз))
  • Spring Boot: 2.3.7 - біз кез келген ақауларды жою үшін ұсынылған ең кіші нұсқасын аламыз. Бұл жүктеудің толығымен заманауи нұсқасы.
Жоба метадеректері:
  • Топ: com.github.javarushcommunity - мұнда біз репозитарийлер тобымыз орналасқан доменді таңдаймыз.
  • Артефакт: javarush-telegrambot – жобаның максималды сипаттамасы.
  • Аты: Javarush TelegramBot - біз оны толығымен осында жазамыз.
  • Сипаттама: Javarush-қа арналған Telegram боты қауымдастықтан қоғамдастыққа - мұнда жобаның егжей-тегжейлі сипаттамасы берілген.
  • Пакет атауы: com.github.javarushcommunity.jrtb - мұнда жоба атауының аббревиатурасын пайдалануға болады. Енді жоба осы пакеттен басталады. Неге сонша көп? Класс жолына басқа жобаларды қосқанда, олар әртүрлі пакеттерде болады. Әрқайсысы өзіндік ерекше жолмен. Бұл OOP принциптерін сақтау үшін маңызды.
  • Қаптама: Банк біздің стандартымыз)
  • Java: 11 - біз бір қадам алда боламыз. Мен сегізінші Java-дан кейін инновацияларды қолданамын деп ойламаймын, бірақ солай болсын. Ол тамақ сұрамайды)... бұл шешім бізге болашақта кішкентай Пасха жұмыртқасын береді)
Біз қазір ешқандай тәуелділік қоспаймыз. Бұл тапсырма үшін бізге бұл қажет емес. Осының бәрін толтырғаннан кейін біз аламыз (мына жерде жасалған жобаға сілтеме«А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 4 ): Толтырғаннан кейін GENERATE түймесін басып, мұрағаттағы барлық ішкі элементтерді жобамызға қосыңыз. «А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 5Жобаға файлдарды қосыңыз. Нәтижесінде бізде өтініш бар. Оның мүлде жинақталғанын тексеру үшін терминалға өтіп, мынаны жазыңыз: $ mvn таза пакет«А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 6 Егер сізде дәл осы жерден болса, бәрі жақсы: жоба жиналды, ал жарник мақсатты қалтада дайын. Осы кезде сипаттамадағы тапсырма дайын. Бұл қарапайым, солай ма? Сондықтан, біз міндеттейміз және фorалымызға итермелейміз: «А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 7тапсырма сипаттамасының басына тапсырмамыздың атын қосамыз, сонда жұмыс қай тапсырма аясында орындалғаны кейінірек анық болады. Орындау және итеру түймешігін басыңыз ... «А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 8Біз жергілікті репозиторийден қашықтағы репозиторийге нақты нені жылжытқымыз келетінін тағы бір рет қарап, тексереміз және бәрі дұрыс екеніне көз жеткізіп, Push түймесін басыңыз . Біздің келесі қадамымыз қандай? Барлық ережелерге сәйкес (оны осы мақалада оқуға болады , GitHub ағыны туралы бөлімде), сіз негізгі фorал үшін тарту сұрауын жасап, команданың біреуінің codeты қарап шығуын күтуіңіз керек. Мен өз бетімше болғандықтан, ресми түрде тарту сұрауын жасап, барлығын қайта қарап шығамын. Мен репозиторий бетіне өтемін, және Github бізде қосымша бар екенін біледі және тарту сұрауын жасауды ұсынады: «А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 9Патриоттар үшін ешқандай кедергілер жоқ (c) - біз оны ұсынғандай жасаймыз. Біз жұмыс істеп жатқан тапсырмадағыдай жапсырманы, жобаны орнатып, сипаттаманы толтырамыз: Тарту сұрауын жасау«А-дан Я-ға Java жобасы»: Біз жоба жазып жатырмыз.  SpringBoot қосыңыз және CI процесін конфигурациялаңыз - 10 түймешігін басыңыз .

CI процесін орнату

Біз жасалған тарту сұрауына барамыз: төменде бізде конфигурацияланған Үздіксіз интеграция (бұдан әрі - CI) жоқ екенін көреміз . "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 11Жақсы, ол конфигурацияланбаған, не болды? Неліктен бізге CI керек? CI деген не? Бұл қазіргі уақытта бізді толғандыратын сұрақтардың шамамен тізімі. Жалпы алғанда, CI - жалпы codeтық базаға codeты біріктірудің және оған дейін жобаның құрылымын іске қосудың үздіксіз процесі. Құрылым деп аталатын (ағылшынша құрастырудан). Біз жобаны құрастырған сайын жобаның құрастырылғанына, оның барлық сынақтарынан сәтті өткеніне көз жеткіземіз, сонымен қатар жобаны құрастырғаннан кейін осы арнайы құрастыруда орындалатын тестерлерден CI-ге автотесттерді қосуға болады. Осылайша, біз жаңа өзгерістер біз күткендей жұмыс істейтініне және алдыңғы функционалдылықты бұзbyteынына сенімді боламыз. CI да жақсы, себебі ол code базасын жаңартқаннан кейін автоматты түрде басталады. Яғни, біз өз өзгерістерімізді фorалға енгіздік және процесс басталды - құрастыру, сынақтар, автотесттер және басқа да қадамдар. Осы қадамдардың кез келгені сәтсіз болса, құрастыру бұзылған болып саналады және оны негізгі тармаққа біріктіру мүмкін емес. Дәл қазір біз осылай істейміз: біз GitHub әрекеттерін қосамыз, ол codeты итеруден кейін іске қосады. GitHub әрекеттері GitHub ағынына өте жақсы сәйкес келеді, сондықтан біз оны жұмысымызды автоматтандыру үшін қолданамыз. Бұл құрал өте қуатты және үлкен, бірақ әзірге біз оны құрастыруды іске қосу және қажет болған жағдайда жинақталғанын тексеру үшін ғана қолданамыз. Оны қосу үшін репозитарий бетіндегі Әрекеттер түймесін тауып , оны орындаңыз: "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 12Бізге қажет үздіксіз интеграция жұмыс процесін табыңыз: "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 13Осы жұмыс процесін орнату түймесін басыңыз. Әрі қарай, бізге олардың үлгісін пайдалану ұсынылады: біз толығымен келісеміз, барлығын аздап түсіндірейік:
# 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 әрекетінің екі жағдайда шақырылғанын көрсетеді:
  1. Негізгі тармаққа итеру жасалғанда.
  2. Басты тармақта тарту сұрауы жасалғанда.
Тапсырмалар бөлімі орындалатын қадамдарды сипаттайды. Бізде бір ғана қадам бар – салу. Бұл біздің жобаның Ubuntu жүйесінде mvn -B package --file pom.xml пәрменімен іске қосылатынын көрсетеді . Дәл осыны біз жергілікті жерде жасадық. Мұнда бірдеңені өзгерткіңіз келсе, өтінемін. Мен бұл үлгіні қолданамын, бұл маған жеткілікті болады. «Орындауды бастау» түймесін басып , процесті конфигурациялау үшін жаңа тармақ жасауды таңдаңыз, содан кейін «Жаңа файлды ұсыну» түймесін басыңыз . Бірақ құрастыру процесі құлап кетті... "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 14Көріп отырғаныңыздай, 14 секундтан кейін сәтсіздікке ұшырау - құрастыру. Бірдеңе болған сияқты: жиналысқа өтіп, егжей-тегжейлерді қарастырайық: "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 15Мен мұндай жадты таба алмадым деп айтады. Неліктен? Ахх, дәл, дәл! Өйткені біз негізгі фorалда өзгерістер жасадық, бірақ біздің міндетіміз әлі жоқ. Сондықтан ол жадты таппады... Сондықтан қазір біз келесі әрекеттерді орындаймыз: біз бұл деректерді шеберге біріктіреміз, содан кейін негізгі тармақты JRTB-0-ге біріктіреміз, содан кейін бәрі жақсы болуы керек. Github әрекеттерінің өзгерістері бар тарту сұрауында Біріктіру сұрауын басыңыз : Біріктіруді растауды"Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 16 қайталаңыз . Әрі қарай, Github біз жұмыс істеген фorалды жоюды ұсынады. Біз бас тартпаймыз және жоймаймыз: Әрі қарай, мен SpringBoot-тың тарту сұрауында веб-сайттан негізгі фorалдан өзгерістерді қалай алу керектігін таппадым, сондықтан біз оны IDEA арқылы қолмен жасаймыз."Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 17

1-қадам: Негізгі фorалды жергілікті репозиторийге жаңартыңыз.

Негізгі бөлімге өту, ctrl + t пернелер тіркесімін басып, негізгі тармақты жаңарту идеясы:"Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 18

2-қадам: Негізгі тармақтан JRTB-0 тармағына өзгертулерді біріктіріңіз.

JRTB-0-ге барайық және оған негізгісін біріктірейік."Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 19

3-қадам: өзгертулерді басыңыз.

Ctrl + shift + k пернелер тіркесімін басып, итеруді растаңыз. Енді құрылыстың өтуін күтіп отырмыз және жасыл болады!)) Бірақ ол қайтадан қызыл. Бұл не? Біз әрекеттер журналына кіріп, Java нұсқаларында синхрондалмағанын көреміз. GitHubActions-те бұл 8, бірақ біз 11-ді қолданамыз: "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 20Енді екі нұсқа бар: әрекеттерді түзетіңіз немесе нұсқаны сегізіншіге дейін төмендетіңіз. Бірінші нұсқа, менің ойымша, жақсырақ және дұрысырақ. Біз бөлек міндеттемеге өзгерістер енгіземіз: біз Java 8 емес, Java 11-мен жұмыс істейміз. "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 21Осыдан кейін, ақырында, бәрі біз үшін сәтті болды және біз жоба үшін CI процесін орната алдық. Мұндай нәрселерді кейінірек алаңдатпау үшін бастапқы кезеңде орнату керек. Енді сіз құрастыру аяқталғанын көре аласыз және сіз қорықпай біріктіре аласыз:"Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 22

Репозиторийдегі фorалдармен жұмысты баптау

Сондай-ақ, репозиторийдегі осындай нәрселерді тармақтармен жұмыс істеу кезінде ережелер ретінде конфигурациялауға болады. Мен оны негізгі тармақты тікелей итеру мүмкін емес, тек тарту сұраулары арқылы және құрастыру сәтсіз болса (яғни, GitHub әрекеттері сәтсіз аяқталса) тарту сұрауын біріктіру мүмкін болмайтындай етіп жасағым келеді. кейбір қадам). Мұны істеу үшін «Параметрлер» түймесін тауып, « Бөлімдерді» таңдаңыз : Қазіргі уақытта фorалдар үшін ережелер жоқ, сондықтан «Ережені қосу»"Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 23 түймесі арқылы жаңасын қосайық : Мұнда көптеген параметрлер бар және әркім өз қалауынша бірдеңе жасай алады. қажеттіліктер. Біріктіру алдында құрастыру тарту сұрауында сәтті өтуі үшін Біріктірмес бұрын күй тексерулерін талап ету параметріне құсбелгі қойыңыз және бізге қажет күйді таңдаңыз - құрастыр. Әзірге бұл жеткілікті: содан кейін сіз бұл рульді жаңартып, тағы не қажет екенін көре аласыз. Осы рульді жасау үшін Жасау түймесін басыңыз . Әрі қарай, егер біз тарту сұрауымызға қайта өтсек, тексеруіміз қажет деп белгіленгенін көреміз: Барлық тапсырма күйлерін көрсететін жоба бетін тексерейік: Сіз қандай тапсырмамен жұмыс істеп жатқанын бірден көре аласыз. Сонымен қатар, жұмыс орындалды және тапсырма codeты қарау күйінде."Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 24"Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 25"Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 26"Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 27

JRTB-0 жабылуда

Енді біз тарту сұрауын дайындап, ол үшін CI жасадық, біз соңғы кезеңді аяқтауымыз керек: тапсырманы жабу, оны дұрыс күйге жылжыту, тақтада жобамыздағы өзгерістерді қарау. Біздің тарту сұрауымыз шеберге біріктіруге дайын. Тарту сұрауында Біріктіру сұрауы түймешігін басыңыз : "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 28Сәтті біріктіруден кейін оны жоюға болады және әдетте солай етеді. Мен бұны фorалдар/міндеттемелер арасындағы өзгерістерді көруді жеңілдету үшін жасамаймын. Тарту сұрауы біріктірілгеннен кейін ол автоматты түрде жоба тақтасында орындалады: "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 29Соңғы қадам мәселені (мәселені) бұрын болған тарту сұрауына сілтемемен жабу: "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 30Бұл мәселе автоматты түрде орындалады. тақта. "Java-проект от А до Я": Пишем проект. Добавляем SpringBoot и настраиваем CI процесс - 31Бастау жасалды, бірінші тапсырма орындалды!

қорытындылар

Біз жұмыс істеп, code жаза бастаған сияқтымыз, бірақ параметрлер әлі де қажет. Иә, бұл уақытты талап етеді, бірақ жоба ұлғайып, күрделірек болғанда, ол жүз есе ақталады және сізге бір міндеттемемен бәрін бұзbyteыныңызға кепілдік қажет. Мұның бәрі орын алатын тарту сұрауы осында қолжетімді . Бәлкім, сіз оқығанда, ол қазірдің өзінде жабылады. Бұл қорқынышты емес: барлық қажетті ақпарат сілтеме арқылы сақталады. Оқығандарыңызға рахмет, жақын арада кездескенше. Әрі қарай!

Сериядағы барлық материалдардың тізімі осы мақаланың басында.

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION