جاوا پروجیکٹ بنانے کے سلسلے میں ایک مضمون (دیگر مواد کے لنکس آخر میں ہیں)۔ اس کا مقصد کلیدی ٹیکنالوجیز کا تجزیہ کرنا ہے، نتیجہ ٹیلی گرام بوٹ لکھنا ہے۔ سلام، پیارے قارئین۔ جیسا کہ پچھلے حصے میں بیان کیا گیا ہے ، ہم منصوبے کے مطابق جائیں گے۔ ہم پہلے ہی ایک پروجیکٹ بنا چکے ہیں اور اسے کوڈ سے بھرنے کا وقت آگیا ہے۔ اب تمام مسائل کو علیحدہ کمٹ کے طور پر شامل کیا جائے گا۔ میں یہاں ہر وہ چیز بیان کروں گا جو ضروری ہے۔ اگر میں کچھ یاد کرتا ہوں یا اسے کافی واضح طور پر بیان نہیں کرتا ہوں، تبصرے میں پوچھیں، میں جواب دینے کی کوشش کروں گا۔
ہم JRTB-0M لکھتے ہیں۔
اس کام میں ہمیں مستقبل کے کام کے لیے ایک خالی SpringBoot فریم ورک شامل کرنے کی ضرورت ہے۔ ہم اسے اسی طرح کریں گے جیسا کہ ہم نے SpringBoot + Flyway کے مضمون میں کیا تھا ۔ پروجیکٹ ڈاؤن لوڈ کریں ، اسے IDEA میں کھولیں اور JRTB-0 نامی ایک نئی برانچ بنائیں ۔ میں نے یہاں ایک خیال کے ذریعے ایسا کرنے کا طریقہ بیان کیا ۔ اس سے ہمارے لیے مستقبل میں کام کو ٹریک کرنا آسان ہو جائے گا۔ کیا آپ کو پہلے ہی معلوم تھا کہ اب کوئی ماسٹر برانچ نہیں ہے؟ اب اسے neutrally - main کہا جاتا ہے ۔ تو ہم اس کے عادی ہو جاتے ہیں۔ اگرچہ، سچ پوچھیں تو، ہم ہمیشہ اس کا نام بدل کر ماسٹر رکھ سکتے ہیں۔ ہم Spring Initializr پر جاتے ہیں اور اپنے بوٹ کے لیے اسپرنگ بوٹ فریم ورک بناتے ہیں۔ اس وقت، پیش کردہ بوٹ سپرنٹ کا سب سے کم عمر ورژن 2.3.7 ہے، آئیے اسے لیتے ہیں۔ میں مندرجہ ذیل ترتیبات کو الگ سے بیان کروں گا:- پروجیکٹ: ماون پروجیکٹ - ہم پہلے ہی یہاں اور یہاں ماون پر تبادلہ خیال کر چکے ہیں ۔ اس لیے میں اضافی طور پر صرف وہی بیان کروں گا جو میں نے پچھلے مضامین میں ظاہر نہیں کیا تھا۔ اگر ایسے "سفید دھبے" ہیں تو یقیناً)
- زبان: Java - یہاں سب کچھ واضح ہے۔ اگر کوئی خواہش ہو تو ہم اس معاملے کو کوٹلن میں دوبارہ لکھ سکتے ہیں۔ میں نے ابھی اپنے آپ کو ایک کتاب کوٹلن ان ایکشن خریدی ہے، ہم مل کر کوٹلن سیکھیں گے))
- اسپرنگ بوٹ: 2.3.7 - ہم کسی بھی مسائل کو ختم کرنے کے لیے پیش کردہ سب سے چھوٹا ورژن لیتے ہیں۔ یہ پہلے سے ہی بوٹ کا مکمل طور پر جدید ورژن ہے۔
- گروپ: com.github.javarushcommunity - یہاں ہم وہ ڈومین منتخب کرتے ہیں جس پر ہمارے گروپ آف ریپوزٹریز کی میزبانی کی گئی ہے۔
- آرٹفیکٹ: javarush-telegrambot - پروجیکٹ کی زیادہ سے زیادہ تفصیل۔
- نام: Javarush TelegramBot - ہم اسے یہاں مکمل لکھیں گے۔
- تفصیل: جاورش کے لیے ٹیلیگرام بوٹ کمیونٹی سے کمیونٹی تک - یہاں پراجیکٹ کی مزید تفصیلی وضاحت ہے۔
- پیکیج کا نام: com.github.javarushcommunity.jrtb - یہاں آپ پہلے ہی پروجیکٹ کے نام کے لیے مخفف استعمال کر سکتے ہیں۔ اب اس پیکج سے پراجیکٹ شروع ہوگا۔ اتنے کیوں؟ تاکہ جب ہم کلاس پاتھ میں دوسرے پروجیکٹس کو شامل کریں تو وہ مختلف پیکجز میں ہوں گے۔ ہر ایک اپنے منفرد انداز میں۔ OOP اصولوں کو برقرار رکھنے کے لیے یہ ضروری ہے۔
- پیکیجنگ: جار ہمارا معیار ہے)
- Java: 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