مقال من سلسلة حول إنشاء مشروع Java (توجد روابط لمواد أخرى في النهاية). هدفه هو تحليل التقنيات الرئيسية، والنتيجة هي كتابة روبوت برقية. تحياتي لكم أيها القراء الأعزاء. كما هو موضح في الجزء السابق ، سنسير وفقًا للخطة. لقد أنشأنا مشروعًا بالفعل وحان الوقت لملئه بالكود. الآن ستتم إضافة كافة المشكلات كالتزامات منفصلة. سأصف كل ما هو ضروري هنا. إذا فاتني شيء ما أو لم أصفه بشكل واضح بما فيه الكفاية، اسأل في التعليقات، وسأحاول الإجابة.
نكتب JRTB-0M
نحتاج في هذه المهمة إلى إضافة إطار عمل SpringBoot فارغ للعمل المستقبلي. سنفعل ذلك بنفس الطريقة التي فعلناها في المقالة حول SpringBoot + Flyway . قم بتنزيل المشروع وافتحه في IDEA وقم بإنشاء فرع جديد يسمى JRTB-0 . لقد وصفت كيفية القيام بذلك من خلال فكرة هنا . وهذا سيسهل علينا متابعة العمل في المستقبل. هل تعلم بالفعل أنه لم يعد هناك فرع رئيسي ؟ الآن يطلق عليه بشكل محايد - رئيسي . لذلك اعتدنا على ذلك. على الرغم من ذلك، لنكون صادقين، يمكننا دائمًا إعادة تسميته مرة أخرى إلى master. نذهب إلى Spring Initializr ونقوم بإنشاء إطار عمل SpringBoot لروبوتنا. في الوقت الحالي، الإصدار الأحدث من Boot Sprint المعروض هو 2.3.7، فلنأخذه. سأصف الإعدادات التالية بشكل منفصل:- المشروع: مشروع Maven - لقد ناقشنا بالفعل Maven هنا وهنا . لذلك، بالإضافة إلى ذلك، سأصف فقط ما لم أفصح عنه في المقالات السابقة. إذا كانت هناك مثل هذه "البقع البيضاء" بالطبع)
- اللغة: جافا - كل شيء واضح هنا. إذا كانت هناك رغبة، فيمكننا إعادة كتابة هذا الأمر في Kotlin. لقد اشتريت للتو كتابًا بعنوان Kotlin in Action، وسنتعلم Kotlin معًا))
- Spring Boot: 2.3.7 - نأخذ أصغر إصدار معروض للتخلص من أي مشاكل. هذه بالفعل نسخة حديثة تمامًا من الحذاء.
- المجموعة: com.github.javarushcommunity - هنا نختار المجال الذي تتم استضافة مجموعة المستودعات الخاصة بنا عليه.
- القطعة الأثرية: javarush-telegrambot - الحد الأقصى لوصف المشروع.
- الاسم: Javarush TelegramBot - سنكتبه بالكامل هنا.
- الوصف: روبوت Telegram لـ Javarush من مجتمع إلى مجتمع - إليك وصف أكثر تفصيلاً للمشروع.
- اسم الحزمة: com.github.javarushcommunity.jrtb - هنا يمكنك بالفعل استخدام اختصار لاسم المشروع. الآن سيبدأ المشروع بهذه الحزمة. لماذا هذا العدد الكبير؟ لذلك عندما نضيف مشاريع أخرى إلى مسار الفصل، ستكون في حزم مختلفة. كل بطريقته الفريدة. هذا مهم للحفاظ على مبادئ OOP.
- التعبئة والتغليف: الجرة هي معيارنا)
- جافا: 11 - سنكون متقدمين بخطوة. لا أعتقد أنني سأستخدم الابتكارات بعد جافا الثامنة، ولكن فليكن. إنه لا يطلب طعاماً)... هذا القرار سيعطينا بيضة عيد الفصح الصغيرة في المستقبل)
إعداد عملية CI
نذهب إلى طلب السحب الذي تم إنشاؤه: أدناه نرى أنه لم يتم تكوين التكامل المستمر (فيما يلي - CI). حسنًا، لم يتم تكوينه، فماذا في ذلك؟ لماذا نحتاج CI على الإطلاق؟ ما هو CI على أي حال؟ هذه تقريبًا قائمة الأسئلة التي يجب أن تهمنا في هذه اللحظة. بشكل عام، CI هي عملية مستمرة لدمج التعليمات البرمجية في قاعدة تعليمات برمجية مشتركة وتشغيل إنشاء المشروع قبل ذلك. ما يسمى بالبناء (من اللغة الإنجليزية البناء). في كل مرة نقوم ببناء مشروع، نتأكد من أن المشروع قد تم تجميعه، وأن جميع اختباراته قد مرت بنجاح، بالإضافة إلى أنه بعد بناء المشروع، يمكنك إضافة اختبارات تلقائية من المختبرين إلى CI التي يتم تشغيلها على هذا البناء المحدد. بهذه الطريقة، نصبح أكثر ثقة بأن التغييرات الجديدة تعمل كما نتوقع ولا تؤدي إلى تعطيل الوظيفة السابقة. يعد CI جيدًا أيضًا لأنه يبدأ تلقائيًا بعد تحديث قاعدة التعليمات البرمجية. أي أننا دفعنا تغييراتنا إلى الفرع وبدأت العملية - التجميع والاختبارات والاختبارات التلقائية والخطوات الأخرى. إذا فشلت أي من هذه الخطوات، فسيتم اعتبار البناء معطلاً ولا يمكن دمجه في الفرع الرئيسي. هذا هو بالضبط ما سنفعله الآن: سنضيف إجراءات GitHub، والتي ستعمل على تشغيل الكود الخاص بنا بعد الدفع. تتلاءم إجراءات GitHub تمامًا مع تدفق GitHub الخاص بنا، لذلك سنستخدمها لأتمتة عملنا. هذه الأداة قوية جدًا وكبيرة الحجم، ولكن في الوقت الحالي سنستخدمها فقط لتشغيل الإنشاء والتحقق من تجميعها حسب الحاجة. لتمكينه، ابحث عن زر الإجراءات في صفحة المستودع واتبعه: ابحث عن سير عمل التكامل المستمر الذي نحتاجه: انقر فوق إعداد سير العمل هذا. بعد ذلك، يُعرض علينا استخدام النموذج الخاص بهم: نحن نتفق تمامًا، دعنا نوضح كل شيء قليلاً:# 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