جلسه شماره 30رایگان

What is Maven? | ماون چیه؟

00:50:49

توضیحات جلسه

🎥 این ویدیو قسمت سی‌ام از بوت‌کمپ رایگان جاواست. 📦 Maven چیست و چه کاربردی در جاوا دارد 📝 در این جلسه به یکی از ابزارهای بسیار مهم و پرکاربرد در اکوسیستم جاوا می‌پردازیم: Apache Maven 💡 یاد می‌گیریم Maven دقیقاً چیست، چه مشکلی را در مدیریت پروژه حل می‌کند و چرا در پروژه‌های حرفه‌ای تقریباً یک استاندارد محسوب می‌شود. ⚙️ در این قسمت بررسی می‌کنیم: • مفهوم Build Tool چیست • Maven چگونه وابستگی‌ها Dependencies را مدیریت می‌کند • نقش فایل pom.xml در ساختار پروژه • مدیریت چرخه حیات پروژه Build Lifecycle • چرا Maven توسعه تیمی را ساده‌تر و استانداردتر می‌کند 🔍 از معرفی مفاهیم تئوری شروع می‌کنیم و قدم‌به‌قدم می‌بینیم چگونه Maven فرآیند ساخت، تست و پکیج کردن پروژه‌های جاوا را منظم و خودکار می‌کند. ✅ در پایان جلسه یک مرور جامع داریم تا نکات کلیدی کاملاً در ذهن تثبیت شوند. 📌 گروه پرسش و پاسخ تلگرام: @programmingByFarzadAfi 💬 گروه پرسش و پاسخ بله: @programming_by_farzadafi ❓ هر سوالی داشتی می‌تونی در گروه بپرسی؛ من یا مربی‌های گروه کمکت می‌کنیم 💬 🎯 بوت‌کمپ رایگان جاوا – آموزش پروژه‌محور برای یادگیری عمیق و ورود به بازار کار.

جزوه و مستندات

مفاهیم کلیدی

Maven

Maven یک ابزار اتوماسیون ساخت (Build Automation) و مدیریت وابستگی است که عمدتاً برای پروژه‌های جاوا استفاده می‌شود تا فرآیندهای کامپایل، تست، بسته‌بندی و مدیریت کتابخانه‌ها را استاندارد و خودکار کند.

Dependency

Dependency به کتابخانه‌ها یا کدهای خارجی (External Libraries) گفته می‌شود که پروژه برای عملکرد صحیح به آن‌ها وابسته است؛ مانند کتابخانه‌های کار با فایل‌های اکسل یا توابع کمکی رشته‌ها.

pom.xml

این فایل مهم‌ترین بخش در یک پروژه Maven است و مخفف Project Object Model می‌باشد. تمام تنظیمات پروژه، اطلاعات نسخه و لیست Dependencyها در این فایل با فرمت XML تعریف می‌شوند.

Jar File

Jar File فرمت استاندارد برای توزیع کتابخانه‌ها در جاوا است که شامل کدهای کامپایل شده (Bytecode) و منابع مورد نیاز می‌باشد.

Maven Central Repository

Maven Central Repository یک مخزن آنلاین و مرکزی است که تقریباً تمام کتابخانه‌های عمومی جاوا در آن قرار دارند و Maven به‌صورت خودکار وابستگی‌ها را از این مخزن دانلود می‌کند.

Local Repository

Local Repository پوشه‌ای در سیستم کاربر (معمولاً پوشه .m2) است که Maven کتابخانه‌های دانلود شده را در آن ذخیره (Cache) می‌کند تا در دفعات بعدی یا استفاده در پروژه‌های دیگر، نیازی به دانلود مجدد نباشد.

Build Lifecycle

Build Lifecycle مجموعه‌ای از مراحل استاندارد در Maven (مانند compile ،test ،package و install) است که به ترتیب برای ساخت و آماده‌سازی نهایی پروژه اجرا می‌شوند.

نکات مهم مصاحبه‌ای

چرا به جای مدیریت دستی فایل‌های jar از Maven استفاده می‌کنیم؟

مدیریت دستی در پروژه‌های بزرگ با ده‌ها کتابخانه بسیار دشوار است. Maven قابلیت‌هایی نظیر دانلود خودکار، مدیریت ورژن‌ها، حل تداخل نسخه‌ها و اشتراک‌گذاری آسان پروژه با دیگران را فراهم می‌کند.

نقش فایل pom.xml در یک پروژه چیست؟

این فایل به‌عنوان شناسنامه و نقشه راه پروژه عمل می‌کند. تمام وابستگی‌ها، پلاگین‌های مورد نیاز برای ساخت و تنظیمات مربوط به نسخه جاوا در این فایل مدیریت می‌شوند.

تفاوت ریپازیتوری Local و Central در Maven چیست؟

Central Repository یک بانک اطلاعاتی آنلاین است که وابستگی‌ها از آنجا دانلود می‌شوند؛ در حالی که Local Repository روی سیستم شما قرار دارد و نسخه‌ای از کتابخانه‌ها را نگه می‌دارد تا سرعت کار افزایش یابد و در نبود اینترنت نیز امکان Build پروژه فراهم باشد.

فاز package در لایف‌سایکل Maven چه کاری انجام می‌دهد؟

این فاز کدهای کامپایل شده را برداشته و در قالب یک فایل قابل توزیع (معمولاً .jar) در پوشه‌ای به نام target قرار می‌دهد.

بیشتر بدانید

ساختار استاندارد پوشه‌ها

Maven یک ساختار مشخص را تحمیل می‌کند؛ کدهای اصلی همیشه در src/main/java و منابع غیرکدی (مانند فایل‌های تنظیمات) در src/main/resources قرار می‌گیرند. این استاندارد باعث می‌شود هر برنامه‌نویسی با مشاهده پروژه شما، سریعاً ساختار آن را درک کند.

IDE Tip

در محیط IntelliJ IDEA یک تب اختصاصی به نام Maven در سمت راست وجود دارد که از طریق آن می‌توانید بدون تایپ دستور، فازهای مختلف Lifecycle مانند clean (برای پاک کردن فایل‌های خروجی قبلی) یا package را اجرا کنید.

مشکل اشتراک‌گذاری پروژه

وقتی از Maven استفاده می‌کنید، نیازی به ارسال فایل‌های حجیم کتابخانه‌ها برای همکارانتان نیست. تنها با در اختیار داشتن فایل pom.xml، سیستم آن‌ها می‌تواند به‌صورت خودکار همه وابستگی‌ها را آماده‌سازی کند.