سلام به کاربران Tosinso. یکی از قدیمی ترین و پرکاربرد ترین package manager ها توی برنامه نویسی package manager مربوط به زبان جاوا هست که Apache Maven نام دارد. البته package manager های مختلفی برای جاوا وجود دارد ولی میتوان گفت که یکی از معروف ترین و پراستفاده ترین آنها Maven است.دقت داشته باشید که Maven فراتر از یک مدیر پکیج ساده است در اصل Maven یک ابزار مدیریت پروژه است که میتواند کارهای مدیریتی مختلفی بر روی پروژه شما انجام دهد و خروجی های مناسب را تولید نماید و یا تست های مورد نظر را انجام دهد. همچنین Maven پلاگین های مختلفی دارد که هرکدام میتوانند برای بیلد کردن نوع خاصی از پروژه یا اهدافی مانند تست کردن و … مورد استفاده قرار گیرند.
Maven یک کلمه به زبان ییدیش میباشد و معنی آن جمع کننده دانش است. استفاده از Maven در پروژه توربین جاکارتا بود. این پروژه به چند پروژه کوچکتر تقسیم شده بود که هر کدام فایلهای jar مختلف و خاصی داشتند و نیازمند یک سیستم بود تا بتواند آنها را کنار هم گذاشته و به صورت یکپارچه ارائه شوند. بنابراین Maven ساخته شد. هدف از ساخت Maven راحتتر کردن و سریعتر کردن فرایند برنامه نویسی است و اینکه بتوان فرایند تولید را راحتتر کرد.
همانطور که گفته شد با Maven میتوان کارهای مختلفی در زمینه تولید و بیلد نرمافزار انجام داد. ولی کاربردی که در این مطلب مورد نظر ماست بخش مدیریت پکیج ها می باشد. همانطور که در معرفی سایر package manager ها گفته بودیم در اکثر این ابزارها فایلی وجود دارد که لیست کتابخانههایی را که پروژه ما به آن وابسته است را نگهداری میکند. Maven هم از این قاعده مستثنی نیست و یک فایل به نام pom.xml دارد که لیست وابستگیها و نسخه های هرکدام را در خود نگهداری میکند.
pom مخفف project object model می باشد. بر خلاف سایر ابزارهای مدیریت پکیج که معرفی کرده بودیم، کتابخانههایی که به پروژه اضافه میشوند و نام آنها در فایل pom.xml قرار میگیرد در داخل یک پوشه در پروژه ذخیره نمی گردد. در عوض این وابستگیها در یک نقطه از کامپیوتر شما ذخیره میشوند و هر بار که لازم باشد Maven به سراغ آن پوشه میرود و از کتابخانه مورد نظر برای بیلد کردن و اجرای پروژه استفاده می کند.
معمولاً پوشه ای که کتابخانههای Maven در آن نگهداری میشود m2 نام دارد. بستگی به نوع سیستم عامل این پوشه در محل مختلفی ذخیره میشود. برای مثال در ویندوز اگر Maven را نصب کرده باشید و با آن کتابخانههایی نصب کرده باشید میتوانید پنجره Run را باز کنید و نام m2 را در آن تایپ کرده و اینتر بزنید تا این پوشه برای شما باز شود. اما اگر شما کاربر لینوکس هستید این پوشه را میتوانید در پوشه home خودتان پیدا کنید. دقت داشته باشید که این پوشه مخفی است و برای دیدن آن باید مجوز دیدن پوشه های مخفی را داشته باشید.
برای شروع کار با Maven باید jdk بر روی سیستم شما نصب باشد که لازم هست ورژن جاوایی که نصب میکنید از نسخه ۷ به بالا باشد.
mvn -v
با زدن دستور زیر نسخه مربوط به Maven نمایش داده میشود و همچنین توضیحاتی در مورد نسخه جاوا و سیستم عامل نیز نمایش داده میشود.برای کار با Maven باید فایل pom.xml وجود داشته باشد. این فایل وقتی که یک پروژه تازه را شروع میکنیم باید حداقل دارای محتویات زیر باشد:
4.0.0 com.companyname.project-group project 1.0
تگ project تگ اصلی این فایل است و همه قسمتها در داخل این تگ قرار می گیرند. تگ modelVersion برای مشخص کردن نسخه برنامه شما است. دقت داشته باشید که برنامه شما نیز یک پکیج محسوب میشود و باید شماره نسخه و سایر مشخصات یک پکیج را داشته باشد. پکیج های Maven دارای سه خصوصیت اصلی هستند modelVersion, groupId, artifactId که به ترتیب نام برنامه و نام گروه برنامه و شماره نسخه برنامه می باشد. دقت داشته باشید که در فایل pom.xml میتوان همه کارهای مربوط به بیلد کردن پروژه را انجام داد از جمله آنها میتوان به عملیات زیر اشاره کرد.
joda-time joda-time 2.9.2
در کد بالا کتابخانه joda-time اضافه میشود و میتوان از آن استفاده کرد.
همانطور که اشاره شد برای کار با Maven از دستور mvn در خط فرمان استفاده میشود.حال در نظر داشته باشید که کد مربوط به پروژه را نوشتهاید و وابستگیها را نیز به فایل pom.xml اضافه کرده اید. برای اینکه پروژه را کامپایل کنید از دستور زیر استفاده میشود.
mvn compile
این کار باعث میشود که وابستگیهای لازم به پروژه اضافه شود و کد شما کامپایل شود. بعد از اینکه عمل کامپایل با موفقیت انجام شد فایلهای .class تولید میشوند که برای اینکه بسته برنامه تولید شود باید یک پکیج از آن ساخته شود که برای این کار از دستور زیر استفاده می شود.
mvn package
این کار باعث میشود که مثلاً فایل jar مربوط به پروژه شما تولید شود و قابل استفاده باشد. Maven دستورات دیگری مانند clean , install, test نیز دارد که برای تست کردن و نصب کردن پروژه به عنوان کتابخانه مورد استفاده و همچنین تمیز کردن پروژه مورد استفاده قرار می گیرد. نسبت به سایر package manager هایی که تا کنون توضیح دادهایم Maven از پیچیدگی بیشتری برخوردار است. ولی جای نگرانی نیست. زیرا که شما برای برنامه نویسی جاوا از IDE های مختلفی مثل eclipse, netbeans, Intellij استفاده میکنید. و این برنامهها به خوبی با Maven کار میکنند و همه دستورات را میتوانید بدون تایپ کردن و با ابزار هایی که این برنامهها در اختیار شما قرار میدهند انجام دهید و نگران نباشید.
بنیانگذار توسینسو و برنامه نویس
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود