מאמר מסדרה על יצירת פרויקט ג'אווה (קישורים לחומרים אחרים נמצאים בסוף). המטרה שלו היא לנתח טכנולוגיות מפתח, התוצאה היא כתיבת בוט טלגרם. שלום רב, קוראים יקרים. כפי שתואר בחלק הקודם , נלך לפי התוכנית. כבר יצרנו פרויקט והגיע הזמן למלא אותו בקוד. כעת כל הנושאים יתווספו כהתחייבויות נפרדות. אתאר כאן את כל מה שצריך. אם אני מתגעגע למשהו או לא מתאר אותו מספיק ברור, שאל בתגובות, אנסה לענות.
אנו כותבים JRTB-0M
במשימה זו עלינו להוסיף מסגרת SpringBoot ריקה לעבודה עתידית. נעשה זאת באותו אופן כמו שעשינו במאמר על SpringBoot + Flyway . הורד את הפרויקט , פתח אותו ב-IDEA וצור סניף חדש בשם JRTB-0 . תיארתי כיצד לעשות זאת באמצעות רעיון כאן . זה יקל עלינו לעקוב אחר עבודות בעתיד. האם כבר ידעתם שאין יותר סניף מאסטר ? עכשיו זה נקרא neutrally- main . אז אנחנו מתרגלים לזה. אם כי, למען האמת, אנחנו תמיד יכולים לשנות את שמו בחזרה למאסטר. אנחנו הולכים ל- Spring Initializr ויוצרים מסגרת SpringBoot עבור הבוט שלנו. כרגע, הגרסה הצעירה ביותר של ספרינט המגפיים המוצעת היא 2.3.7, בוא ניקח את זה. אתאר בנפרד את ההגדרות הבאות:- Project: Maven Project - כבר דנו ב-Maven כאן וכאן . לכן, אני אתאר בנוסף רק את מה שלא חשפתי במאמרים קודמים. אם יש "כתמים לבנים" כאלה כמובן)
- שפה: ג'אווה - הכל ברור כאן. אם יש רצון, נוכל לשכתב עניין זה בקוטלין. זה עתה קניתי לעצמי ספר קוטלין בפעולה, נלמד את קוטלין ביחד))
- Spring Boot: 2.3.7 - אנו לוקחים את הגרסה הקטנה ביותר המוצעת כדי למנוע בעיות. זו כבר גרסה מודרנית לחלוטין של המגף.
- קבוצה: com.github.javarushcommunity - כאן אנו בוחרים את הדומיין בו מתארחת קבוצת המאגרים שלנו.
- חפץ: javarush-telegrambot - תיאור מקסימלי של הפרויקט.
- שם: Javarush TelegramBot - נכתוב את זה במלואו כאן.
- תיאור: בוט טלגרם עבור Javarush מקהילה לקהילה - הנה תיאור מפורט יותר של הפרויקט.
- שם החבילה: com.github.javarushcommunity.jrtb - כאן כבר ניתן להשתמש בקיצור לשם הפרויקט. כעת הפרויקט יתחיל בחבילה זו. למה כל כך הרבה? כך שכאשר נוסיף פרויקטים אחרים ל-classpath, הם יהיו בחבילות שונות. כל אחד בדרכו הייחודית. זה חשוב כדי לשמור על עקרונות OOP.
- אריזה: צנצנת היא הסטנדרט שלנו)
- Java: 11 - אנחנו נהיה צעד אחד קדימה. אני לא חושב שאשתמש בחידושים אחרי ה-Java השמיני, אבל תן לזה להיות. הוא לא מבקש אוכל)... ההחלטה הזו תיתן לנו ביצת פסחא קטנה בעתיד)
הגדרת תהליך CI
אנו עוברים לבקשת המשיכה שנוצרה: להלן אנו רואים שאין לנו Continuous Integration מוגדר (להלן - CI). ובכן, זה לא מוגדר, אז מה? למה אנחנו צריכים CI בכלל? מה זה בכלל CI? זו בערך רשימת השאלות שצריכות להדאיג אותנו ברגע זה. באופן כללי, CI הוא תהליך מתמשך של מיזוג קוד לבסיס קוד משותף והפעלת בנייה של הפרויקט לפני כן. מה שנקרא build (מאנגלית build). בכל פעם שאנו בונים פרויקט, אנו מוודאים שהפרויקט נערך, כל הבדיקות שלו עברו בהצלחה, בנוסף לאחר בניית הפרויקט, ניתן להוסיף בדיקות אוטומטיות של בודקים ל-CI המופעלות על ה-build הספציפי הזה. כך, אנו נעשים בטוחים יותר שהשינויים החדשים עובדים כפי שאנו מצפים ואינם שוברים את הפונקציונליות הקודמת. CI טוב גם מכיוון שהוא מתחיל אוטומטית לאחר עדכון בסיס הקוד. כלומר, דחפנו את השינויים שלנו לסניף והתחיל התהליך – הרכבה, בדיקות, בדיקות אוטומטיות ועוד שלבים. אם אחד מהשלבים הללו נכשל, ה-build נחשב שבור ולא ניתן למזג אותו לתוך הסניף הראשי. זה בדיוק מה שנעשה עכשיו: נוסיף את GitHub Actions, שיריץ את הקוד שלנו לאחר הדחיפה. פעולות GitHub משתלבות בצורה מושלמת בזרימת GitHub שלנו, אז נשתמש בה כדי להפוך את העבודה שלנו לאוטומטית. הכלי הזה חזק וגדול מאוד, אבל בינתיים נשתמש בו רק כדי להפעיל את ה-build ולבדוק שהוא מורכב לפי הצורך. כדי להפעיל אותו, מצא את כפתור הפעולות בדף המאגר ופעל לפיו: מצא את זרימת העבודה הרציפה של השילוב שאנו צריכים: לחץ על הגדר זרימת עבודה זו. לאחר מכן, מציעים לנו להשתמש בתבנית שלהם: אנחנו מסכימים לחלוטין, בואו נבהיר קצת את הכל:# 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