Farzad Afi Logo

FarzadAfi

آموزش تخصصی برنامه نویسی

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

📖توضیحات درس

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

📄جزوه

مفاهیم کلیدی

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

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

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

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

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

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

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

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

  • چرا به جای مدیریت دستی فایل‌های jar از Maven استفاده می‌کنیم؟
    مدیریت دستی در پروژه‌های بزرگ با ده‌ها کتابخانه بسیار سخت است. Maven دانلود خودکار، مدیریت ورژن‌ها، حل تداخل نسخه‌ها و اشتراک‌گذاری آسان پروژه با دیگران را فراهم می‌کند.

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

  • تفاوت ریپازیتوری Local و Central در Maven چیست؟
    Central یک بانک اطلاعاتی آنلاین است که وابستگی‌ها از آنجا دانلود می‌شوند، در حالی که Local روی سیستم شماست و نسخه‌ای از کتابخانه‌ها را نگه می‌دارد تا سرعت کار بالاتر برود و در نبود اینترنت هم بتوان پروژه را Build کرد.

  • فاز package در لایف‌سایکل Maven چه کاری انجام می‌دهد؟
    این فاز کدهای کامپایل شده را برداشته و در قالب یک فایل قابل توزیع (معمولاً .jar) در پوشه‌ای به نام target قرار می‌دهد.

بیشتر بدانید

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

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

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