What is Maven? | ماون چیه؟
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
-
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کافی است تا سیستم آنها به صورت خودکار همه چیز را آماده کند.
