Java loyihasini yaratish haqidagi turkum maqola (boshqa materiallarga havolalar oxirida). Uning maqsadi - asosiy texnologiyalarni tahlil qilish, natijada telegram botini yozish. Assalomu alaykum, aziz o'quvchilar. Oldingi qismda aytib o'tilganidek , biz reja bo'yicha boramiz. Biz allaqachon loyiha yaratdik va uni kod bilan to'ldirish vaqti keldi. Endi barcha masalalar alohida topshiriqlar sifatida qo'shiladi. Men bu erda kerak bo'lgan hamma narsani tasvirlab beraman. Agar biror narsani o'tkazib yuborsam yoki uni etarlicha aniq tasvirlamasam, sharhlarda so'rang, men javob berishga harakat qilaman.
Biz JRTB-0M yozamiz
Ushbu vazifada kelajakdagi ish uchun bo'sh SpringBoot ramkasini qo'shishimiz kerak. Buni SpringBoot + Flyway haqidagi maqolada qilganimizdek qilamiz . Loyihani yuklab oling , IDEA-da oching va JRTB-0 deb nomlangan yangi filial yarating . Buni qanday qilish kerakligini bu erda bir fikr orqali tasvirlab berdim . Bu bizga kelajakdagi ishlarni kuzatishni osonlashtiradi. Siz allaqachon magistr filiali yo'qligini bilasizmi ? Endi u neytral deb ataladi - asosiy . Shunday qilib, biz ko'nikamiz. Rostini aytadigan bo'lsak, biz uni har doim master deb qayta nomlashimiz mumkin. Biz Spring Initializr- ga o'tamiz va botimiz uchun SpringBoot ramkasini yaratamiz. Ayni paytda yuklash sprintining taklif qilingan eng yosh versiyasi 2.3.7, keling, uni olaylik. Men quyidagi sozlamalarni alohida tasvirlab beraman:- Loyiha: Maven loyihasi - biz Mavenni bu erda va bu erda muhokama qildik . Shuning uchun, men avvalgi maqolalarda oshkor qilmagan narsalarni qo'shimcha ravishda tasvirlab beraman. Agar shunday "oq dog'lar" bo'lsa, albatta)
- Til: Java - bu erda hamma narsa aniq. Agar istak bo'lsa, biz bu masalani Kotlinda qayta yozishimiz mumkin. Men o'zimga "Kotlin in Action" kitobini sotib oldim, biz Kotlinni birga o'rganamiz))
- Spring Boot: 2.3.7 - biz har qanday muammolarni bartaraf etish uchun taklif qilingan eng kichik versiyani olamiz. Bu allaqachon yuklashning mutlaqo zamonaviy versiyasi.
- Guruh: com.github.javarushcommunity - bu erda biz omborlar guruhimiz joylashgan domenni tanlaymiz.
- Artifakt: javarush-telegrambot - loyihaning maksimal tavsifi.
- Nomi: Javarush TelegramBot - bu erda to'liq yozamiz.
- Tavsif: Jamiyatdan jamoaga Javarush uchun Telegram boti - bu erda loyihaning batafsil tavsifi.
- Paket nomi: com.github.javarushcommunity.jrtb - bu yerda siz allaqachon loyiha nomining qisqartmasidan foydalanishingiz mumkin. Endi loyiha ushbu paketdan boshlanadi. Nega shuncha ko'p? Shunday qilib, biz sinf yo'liga boshqa loyihalarni qo'shganimizda, ular turli paketlarda bo'ladi. Har biri o'ziga xos tarzda. Bu OOP tamoyillarini saqlab qolish uchun muhimdir.
- Qadoqlash: kavanoz bizning standartimiz)
- Java: 11 - biz bir qadam oldinda bo'lamiz. Sakkizinchi Java-dan keyin innovatsiyalardan foydalanaman deb o'ylamayman, lekin shunday bo'lsin. U ovqat so'ramaydi) ... bu qaror bizga kelajakda kichik Pasxa tuxumini beradi)
CI jarayonini sozlash
Biz yaratilgan tortishish so'roviga o'tamiz: quyida bizda Continuous Integration (keyingi o'rinlarda - CI) sozlanmaganligini ko'ramiz . Xo'sh, u sozlanmagan, nima bo'ladi? Nima uchun bizga CI umuman kerak? CI nima? Bu hozir bizni tashvishga solishi kerak bo'lgan savollar ro'yxati. Umuman olganda, CI kodni umumiy kod bazasiga birlashtirish va undan oldin loyihani yaratishning uzluksiz jarayonidir. Qurilish deb ataladigan narsa (inglizcha qurilishdan). Har safar loyihani qurganimizda, biz loyiha tuzilganiga, uning barcha sinovlari muvaffaqiyatli o'tganiga ishonch hosil qilamiz, shuningdek, loyihani qurgandan so'ng siz ushbu maxsus tuzilishda ishlaydigan testerlardan CI-ga avtotestlarni qo'shishingiz mumkin. Shunday qilib, biz yangi o'zgarishlar biz kutgandek ishlashiga va avvalgi funksiyalarni buzmasligiga ishonchimiz ko'proq bo'ladi. CI ham yaxshi, chunki u kod bazasini yangilagandan so'ng avtomatik ravishda boshlanadi. Ya'ni, biz o'zgartirishlarimizni filialga kiritdik va jarayon boshlandi - yig'ish, sinovlar, avtotestlar va boshqa bosqichlar. Agar ushbu qadamlardan biri muvaffaqiyatsiz bo'lsa, qurilish buzilgan deb hisoblanadi va uni asosiy filialga birlashtirib bo'lmaydi. Biz aynan shunday qilamiz: biz surishdan keyin kodimizni ishga tushiradigan GitHub Actions qo'shamiz. GitHub Actions bizning GitHub Flowimizga juda mos keladi, shuning uchun biz undan ishimizni avtomatlashtirish uchun foydalanamiz. Ushbu vosita juda kuchli va katta, ammo hozircha biz uni faqat qurilishni ishga tushirish uchun ishlatamiz va kerak bo'lganda yig'ilganligini tekshiramiz. Uni yoqish uchun ombor sahifasida Harakatlar tugmasini toping va unga amal qiling: Bizga kerak bo'lgan uzluksiz integratsiya ish jarayonini toping: Ushbu ish jarayonini sozlash-ni bosing. Keyinchalik, bizga ularning shablonidan foydalanish taklif etiladi: biz to'liq rozimiz, keling, hamma narsani biroz aniqlab olaylik:# 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 Action ikki holatda chaqirilishini ko'rsatadi:
- Asosiy shoxga surish amalga oshirilganda.
- Asosiy filialda tortish so'rovi yaratilganda.
GO TO FULL VERSION