Farzad Afi Logo

FarzadAfi

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

Maven Lifycycle

📖توضیحات درس

🎥 این ویدیو قسمت سی‌ونهم از بوت‌کمپ رایگان جاواست. 📚 Maven – آشنایی کامل با Build Lifecycle در پروژه‌های جاوا در این جلسه سراغ یکی از مفاهیم کلیدی در دنیای جاوا می‌رویم: Build Lifecycle در Maven. Maven یکی از ابزارهای استاندارد برای مدیریت ساخت و وابستگی‌های پروژه است و درک چرخه ساخت (Lifecycle) کمک می‌کند پروژه‌ها را حرفه‌ای‌تر مدیریت، تست و توزیع کنید. در این ویدیو بررسی می‌کنیم: - Build Lifecycle در Maven چیست و چرا اهمیت دارد - فازهای مختلف lifecycle مانند validate، compile، test، package، install و deploy - نحوه اجرای این فازها با دستور mvn - آشنایی با فاز clean و نقش آن در داشتن یک build تمیز - مرور ترتیب اجرای فازها و نکات مهم کاربردی 💬 گروه پرسش و پاسخ تلگرام: @programmingByFarzadAfi 💬 گروه پرسش و پاسخ بله: @programming_by_farzadafi هر سوالی داشتی، توی گروه بپرس؛ من یا مربی‌های گروه پاسخگو هستیم 🌱 🎯 بوت‌کمپ رایگان جاوا – آموزش پروژه‌محور برای یادگیری عمیق و ورود به بازار کار
00:27:44🎯رایگان

📄جزوه

مفاهیم کلیدی

  • Maven Build Lifecycle

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

  • Phase

هر یک از مراحل مشخص در چرخه حیات (مانند کامپایل یا تست) که وظیفه خاصی را بر عهده دارد.

  • Bytecode

نسخه کامپایل شده کدهای جاوا با فرمت .class که توسط ماشین مجازی جاوا (JVM) قابل اجراست.

  • Local Repository (.m2)

پوشه‌ای در سیستم محلی توسعه‌دهنده که Maven کتابخانه‌های دانلود شده و پروژه‌های نصب شده را در آن ذخیره می‌کند.

  • Artifact

خروجی نهایی پروژه (معمولاً با فرمت JAR یا WAR) که دارای مشخصاتی مثل artifactId و version است.

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

  • تفاوت بین فازهای Install و Deploy چیست؟
    فاز install فایل نهایی (JAR) را در مخزن محلی سیستم شما (.m2) کپی می‌کند تا در پروژه‌های دیگر خودتان استفاده کنید، اما deploy آن را به یک مخزن راه دور (Remote Repository) می‌فرستد تا سایر توسعه‌دهندگان در دنیا به آن دسترسی داشته باشند.

  • فاز Clean چه کاربردی دارد و چرا قبل از بیلد جدید توصیه می‌شود؟
    این فاز پوشه target (خروجی‌های قبلی) را حذف می‌کند. این کار تضمین می‌کند که کدهای قدیمی یا فایل‌های بیلد قبلی با بیلد جدید تداخلی نداشته باشند و فرآیند از صفر و به صورت سالم شروع شود.

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

مثال یا سناریوی کاربردی

در ویدیو فرآیند ساخت یک کتابخانه به صورت عملی نمایش داده شده است: ۱. ابتدا با فاز validate بررسی می‌شود که پارامترهایی مثل artifactId در فایل تنظیمات موجود باشند. (مثلاً با حذف این پارامتر، بیلد متوقف می‌شود). ۲. در مرحله compile کدها از مسیر src/main/java خوانده شده و به بایت‌کد تبدیل شده و در پوشه target/classes قرار می‌گیرند. ۳. در مرحله package این بایت‌کدها به همراه منابع دیگر بسته‌بندی شده و یک فایل با پسوند .jar در پوشه target ساخته می‌شود. نام این فایل ترکیبی از نام پروژه و ورژن آن است.

بیشتر بدانید

  • استفاده از ترمینال

علاوه بر استفاده از منوهای گرافیکی در IDEهایی مثل IntelliJ، می‌توان تمام این مراحل را با دستورات متنی اجرا کرد. برای مثال دستور mvn clean package همزمان پوشه قبلی را پاک کرده و فایل JAR جدید را می‌سازد.

  • دیکامپایل کد

محیط‌های توسعه (IDE) معمولاً قابلیت این را دارند که فایل‌های کامپایل شده (.class) را به صورت خودکار دیکامپایل کرده و کدی مشابه سورس‌کد اصلی به شما نمایش دهند تا بتوانید خروجی را بررسی کنید.