مقاله ای از مجموعه ای در مورد ایجاد یک پروژه جاوا (لینک به سایر مواد در پایان است). هدف آن تجزیه و تحلیل فناوری های کلیدی است که نتیجه آن نوشتن یک ربات تلگرام است. با سلام خدمت خوانندگان عزیز. همانطور که در قسمت قبل توضیح داده شد ، طبق برنامه پیش خواهیم رفت. ما قبلاً یک پروژه ایجاد کرده ایم و زمان آن رسیده که آن را با کد پر کنیم. اکنون همه مسائل به عنوان commit های جداگانه اضافه خواهند شد. من هر آنچه را که لازم است در اینجا شرح خواهم داد. اگر چیزی را از دست دادم یا آن را به اندازه کافی واضح توصیف نکردم، در نظرات بپرسید، سعی می کنم پاسخ دهم.
ما JRTB-0M می نویسیم
در این کار باید یک چارچوب خالی SpringBoot برای کارهای آینده اضافه کنیم. ما این کار را به همان روشی که در مقاله درباره SpringBoot + Flyway انجام دادیم انجام خواهیم داد . پروژه را دانلود کنید ، آن را در IDEA باز کنید و یک شاخه جدید به نام JRTB-0 ایجاد کنید . من نحوه انجام این کار را از طریق یک ایده در اینجا شرح دادم . این امر ردیابی کار را در آینده برای ما آسان تر می کند. آیا قبلاً می دانستید که دیگر شعبه اصلی وجود ندارد ؟ اکنون آن را خنثی - اصلی می نامند . پس عادت می کنیم. اگرچه، صادقانه بگوییم، همیشه میتوانیم آن را به master تغییر نام دهیم. ما به Spring Initializr می رویم و یک چارچوب SpringBoot برای ربات خود ایجاد می کنیم. در حال حاضر، جوانترین نسخه بوت اسپرینت ارائه شده 2.3.7 است، بیایید آن را بگیریم. تنظیمات زیر را جداگانه توضیح خواهم داد:- پروژه: پروژه Maven - قبلاً در اینجا و اینجا درباره Maven بحث کرده ایم . بنابراین، من فقط مواردی را که در مقالات قبلی فاش نکردم، توضیح خواهم داد. البته اگر چنین "لکه های سفید" وجود داشته باشد)
- زبان: جاوا - اینجا همه چیز واضح است. در صورت تمایل می توانیم این موضوع را در کاتلین بازنویسی کنیم. من به تازگی برای خودم یک کتاب کاتلین در عمل خریدم، ما با هم کاتلین را یاد خواهیم گرفت))
- Spring Boot: 2.3.7 - ما کوچکترین نسخه ارائه شده را برای از بین بردن هرگونه مشکل می گیریم. این در حال حاضر یک نسخه کاملاً مدرن از بوت است.
- گروه: com.github.javarushcommunity - در اینجا دامنه ای را انتخاب می کنیم که گروه مخازن ما روی آن میزبانی می شود.
- مصنوع: javarush-telegrambot - حداکثر توضیحات پروژه.
- نام: Javarush TelegramBot - آن را به طور کامل در اینجا می نویسیم.
- توضیحات: ربات تلگرام برای جاروش از جامعه ای به انجمن دیگر - در اینجا توضیحات دقیق تری از پروژه ارائه شده است.
- نام بسته: com.github.javarushcommunity.jrtb - در اینجا می توانید از یک مخفف برای نام پروژه استفاده کنید. اکنون پروژه با این بسته شروع می شود. چرا اینقدر زیاد؟ به طوری که وقتی پروژه های دیگر را به classpath اضافه می کنیم در پکیج های مختلف قرار بگیرند. هر کدام به روش منحصر به فرد خود. این برای حفظ اصول OOP مهم است.
- بسته بندی: شیشه استاندارد ما است)
- جاوا: 11 - ما یک قدم جلوتر خواهیم بود. فکر نمیکنم بعد از جاوا هشتم از نوآوریها استفاده کنم، اما بگذارید باشد. او غذا نمی خواهد)... این تصمیم در آینده یک تخم مرغ کوچک عید پاک به ما می دهد)
راه اندازی فرآیند CI
ما به درخواست کشش ایجاد شده می رویم: در زیر می بینیم که Continuous Integration پیکربندی نشده است (از این پس - CI). خوب، پیکربندی نشده است، پس چی؟ اصلاً چرا به CI نیاز داریم؟ به هر حال CI چیست؟ این تقریباً فهرست سؤالاتی است که در این لحظه باید ما را نگران کند. به طور کلی، CI یک فرآیند پیوسته از ادغام کد در یک پایه کد مشترک و اجرای یک بیلد از پروژه قبل از آن است. به اصطلاح بیلد (از انگلیسی build). هر بار که پروژه ای را می سازیم، مطمئن می شویم که پروژه کامپایل شده است، تمام تست های آن با موفقیت پشت سر گذاشته شده است، به علاوه پس از ساخت پروژه، می توانید تست های خودکار را از تسترها به CI اضافه کنید که روی این بیلد خاص اجرا می شوند. به این ترتیب، ما بیشتر مطمئن می شویم که تغییرات جدید همانطور که انتظار داریم عمل می کنند و عملکرد قبلی را از بین نمی برند. CI همچنین خوب است زیرا پس از به روز رسانی پایه کد به طور خودکار شروع می شود. یعنی، ما تغییرات خود را وارد شعبه کردیم و فرآیند شروع شد - مونتاژ، آزمایش، تست خودکار و مراحل دیگر. اگر هر یک از این مراحل شکست بخورد، ساخت شکسته در نظر گرفته می شود و نمی توان آن را در شاخه اصلی ادغام کرد. این دقیقاً همان کاری است که اکنون انجام خواهیم داد: اقدامات GitHub را اضافه می کنیم که کد ما را پس از فشار اجرا می کند. GitHub Actions کاملاً با جریان GitHub ما مطابقت دارد، بنابراین ما از آن برای خودکارسازی کار خود استفاده خواهیم کرد. این ابزار بسیار قدرتمند و بزرگ است، اما در حال حاضر فقط از آن برای اجرای ساخت و بررسی مونتاژ آن در صورت نیاز استفاده می کنیم. برای فعال کردن آن، دکمه Actions را در صفحه مخزن پیدا کنید و آن را دنبال کنید: گردش کار Continuous Integration را که نیاز داریم پیدا کنید: روی Set up this workflow کلیک کنید. در مرحله بعد، به ما پیشنهاد می شود از الگوی آنها استفاده کنیم: ما کاملاً موافقیم، بگذارید همه چیز را کمی روشن کنیم:# 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 در دو حالت فراخوانی می شود:
- هنگامی که فشاری به شاخه اصلی انجام می شود.
- هنگامی که یک درخواست کشش در شاخه اصلی ایجاد می شود.
GO TO FULL VERSION