ورود

View Full Version : تاپیک اختصاصی Maven



L u k e
سه شنبه 09 فروردین 1390, 16:21 عصر
سلام
به نظر من اگه واسه هر مبحثی توی جاوا یک تاپیک اصلی داشته باشیم خیلی بهتره اینجوری همه ی اطلاعات در مورد اون مبحث رو یه جا می کنم و واسه کاربرایی که می خوان تازه شروع کنن خیلی بهتره

-----------------------------------------------------------------------------------------------------------------------

سایت سازنده :

http://maven.apache.org/

لینک دانلود ( ورژن 3.0.3 ) :

http://apache.mirrors.airband.net/maven/binaries/apache-maven-3.0.3-bin.zip

L u k e
سه شنبه 09 فروردین 1390, 16:22 عصر
Maven چیست ؟

Maven یک ابزار مدیریت و تعریف پروژه بر پایه مفهوم POM - Project Object Model می باشد. Maven به زبان Yiddish (زبان یهودیان اشکنازی در هزار سال پیش) بمعنی مخزن دانش می باشد.
Maven یک روش جامع برای مدیریت پروژه از زمان کامپایل تا انتشار تا مستند سازی تا همکاری تیمی فراهم می سازد ، در یک جمله Maven یک چارچوب مدیریت پروژه (Project Management Framework) می باشد.

اهداف Maven


آسان سازی فرایند build
فراهم سازی یک سیستم build یکپارچه
فراهم سازی اطلاعات کیفی پروژه
فراهم سازی دستورالعمل هایی برای استفاده مجدد از بهترین تجربه های توسعه
امکان افزودن قابلیت های جدید به پروژه بصورت نامحسوس

Maven چه چیزی هست و چه چیزی نیست ؟ یک ابزار build نیست ، یک چارچوب اسکریپت نویسی نیست ، Maven را نمی توان با چند جمله به سادگی تشریح کرد ، Maven ترکیبی از ایده ها ، استانداردها و نرم افزار است. پس Maven چیست ؟



مجموعه ای از استانداردهای build
یک مدل برای مخزن محصولات (Artifact Repository) (مانند jar فایل ها)
یک موتور نرم افزاری که وظیفه مدیریت و تعریف پروژه ها را بر عهده دارد
تعریف یک استاندارد چرخه کار برای build ، تست و deploy خروجی پروژه
فراهم کردن یک Framework برای استفاده مجدد از تجربیات خوب یک پروژه برای تمامی پروژه های (در قالب ایجاد plug-in)

نصب و راه اندازی Maven


ابتدا باید از این لینک (http://maven.apache.org/download.html)نسخه 2.2.1 Maven (یا آخرین نسخه پایدار 2) را دانلود کنید.
فایل zip دانلود شده را در یک مکان مشخص unzip کنید (برای مثال در شاخه C:\Program Files\Apache Software Foundation\apache-maven-2.1.1) از این پس این دایرکتوری را با نام محل نصب Maven می شناسیم.
یک environment variable با نام M2_HOME و مقدار دایرکتوری محل نصب Maven ایجاد کنید.
دایرکتوری bin که درون محل نصب Maven قرار دارد را درون PATH سیستم عامل قرار دهید (این عملیات ممکن است برای هر سیستم عامل متفاوت باشد) با این کار دستورات Maven در هر دایرکتوری که باشید در command line به دستورات Maven دسترسی خواهید داشت.
بمنظور اینکه مطمئن شوید مراحل نصب Maven را درست انجام داده اید درون command line دستور mvn --version را اجرا کنید در صورتی که پیغام مناسب را دریافت کردید (پیغامی حاوی نسخه JDK ، نسخه Maven و نام سیستم عامل و...) می توانید کار با Maven را برروی سیستم خود آغار کنید.


ایجاد اولین پروژه Maven
بمنظور ایجاد اولین پروژه Maven شما باید از مکانیزم Maven Archetype استفاده کنید.

1- یک دایرکتوری برای پروژه خود ایجاد کنید (برای مثال C:\Maven-Project) 2- در command line درون دایرکتوری ایجاد شده در مرحله قبل رفته و دستور زیر را اجرا کنید:



mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

3- پس از اجرای دستور Maven یکسری Artifact (محصولات) مورد نیاز خود را از اینترنت دانلود کرده و یک دایرکتوری با نام my-app (نامی که شما برای پروژه خود در نظر گرفته اید) درون دایرکتوری C:\Maven-Project ایجاد می کند که حاوی پروژه Maven شما می باشد. ساختار این دایرکتوری بشکل زیر می باشد:

http://www.javafa-dl.com/images/maven-project.JPG (http://www.javafa-dl.com/images/maven-project.JPG)

شاخه src حاوی تمامی چیزهایی است که شما برای build , test , مستندسازی و deploy پروژه نیاز دارید. در حال حاضر پروژه شما فقط یک فایل اجرایی ( App.java ) نمونه ، یک فایل تست (AppTest.java بر اساس کتابخانه junit) و یک فایل pom که ساختار پروژه شما را تعریف کرده است.

کامپایل source پروژه
شما می توانید به راحتی و با اجرای دستور زیر در command line پروژه خود را کامپایل کنید (این دستور حتما باید در شاخه ای ایجاد شود که فایل pom پروژه در آن قرار دارد).

C:\mvnbook\my-app> mvn compileپس از اجرای این دستور درون دایرکتوری پروژه شما یک دایرکتوری با نام target ایجاد می شود که درون آن یک دایرکتوری classes وجود دارد که فایل های کامپایل شده پروژه شما درون آن قرار دارد.

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


منبع : javafa.com

L u k e
سه شنبه 09 فروردین 1390, 16:30 عصر
من اطلاعات کمی در مورد Maven دارم ولی تصمیم گرفتم که ازش استفاده کنم
می دونم که یه ابزار برای ساخت و مدیریت پروژست ولی دقیقا نمی دونم چه امکاناتی داره و آیا واقعا لازمه از این ابزار ها برای مدیریت پروژه استفاده کرد
کسایی که با Maven کردند لطف کنند ویژگی هاشو بگن ببینیم قزیه از چه قراره

فائزه-ق
شنبه 23 دی 1391, 11:51 صبح
سلام
دوست عزیز حالا چطور میشه این فایل کامپایل شده ماون رو در eclipse اجرا کرد؟

L u k e
شنبه 23 دی 1391, 19:16 عصر
اگه منظورتون اینه که چطور می شه یه پروژه maven رو با eclipse باز کرد ؟
من با Netbeans کار می کنم ولی اینجا قشنگ توضیح داده :
http://www.mkyong.com/maven/how-to-convert-maven-java-project-to-support-eclipse-ide/

فائزه-ق
شنبه 23 دی 1391, 23:00 عصر
البته من خیلی تازه کارم ولی تا جائی که فهمیدم در کناز تغییراتی که در لینکی که شما گذاشتین یک پروژه ماون ایجاد میکنه فولدری هم به نام target ایجاد میکنه که فایل کامپایل شده جاوا را در آن قرار میدهد. این لینک هم توضیح کامل در مورد ساختار ماون داده
http://fusesource.com/docs/esb/4.2/deploy_osgi/Build-MavenDir.html
حالا سوالم اینه که این فایل کامپایل شده کجا مورد استفاده قرار می گیرد؟

L u k e
یک شنبه 24 دی 1391, 19:45 عصر
خوب فلدر target شامل خروجی build شده پروژه اس دیگه

فائزه-ق
یک شنبه 24 دی 1391, 23:00 عصر
خب مشکل همینه، نمیفهمم این فایل کجا باید استفاده باشه یا اصلا نیازی هست که اون رو به صورت جداگانه جائی استفاده کنیم یا نه؟

L u k e
دوشنبه 25 دی 1391, 00:02 صبح
خوب برای مثال اگه پروژه وب سایت باشه خروجی رو وقتی می خوای سایت رو آپلود کنی نیاز داری
اگه هم Application باشه وقتی که بخوای منتشرش کنی
خوب همیشه که نمی شه با Netbeans اجرا کرد که

فائزه-ق
دوشنبه 25 دی 1391, 08:56 صبح
ممنون از وقتی که گذاشتین:لبخندساده:

ناصرقلی
دوشنبه 25 دی 1391, 15:27 عصر
maven ابزار خوبی است اما هرکس که خواست پروزه ای با چند ماجول و به صورت پدر فرزندی را با آن ایجاد کند و با اکلیپس و پلاگین m2eclipse روی پروژه اش کار کند ور افتاد ! مایه تاسف است که اکلیپس و میون خیلی آبشون با هم تو یه جوب نمی ره. در این مورد Intellij Idea خیلی رفتار دوستانه تری با maven دارد. ما که با اکلیپس و maven بسی خون جگر خوردیم و دست آخر هم مجبور شدیم بریم سراغ IntelliJ Idea

فائزه-ق
چهارشنبه 27 دی 1391, 08:08 صبح
میشه بگین چه مشکلاتی معمولا در اکلیپس ایجاد می کند؟ من تازه کارم و نمیدونم مشکلاتم از نابلدی منه یا مشکل ماون؟ :لبخندساده:

ناصرقلی
چهارشنبه 27 دی 1391, 10:37 صبح
مشکل در عدم کامپایل شدن ماجولها یا عدم قبول کردن برخی از پلاگینهای میون . عدم تشخیص تغییرات ایجاد شده در ماجولها و ... به ویژه وقتی از پروفایل هم استفاده کرده باشین . پلاگین اکلیپس خودش یک بیلدر میون به پروژه شما می چسباند که کاری به پروفایل ندارد و شما برای تعیین پورفایل باید خودتان پروژه را بیلد کنید ! در حالی که IntelliJ هم وابستگی ماجولها را درست تشخیص می دهد و هم اینکه امکان انتخبا پروفایل را به راحتی در کنار صفحه به شما می دهد.
در IntelliJ وابستگی ماجولهای شما همگی از طریق جر فایلهای دیپلوی یا اینستال شده صورت می گیرد نه از طریق رفرنس مستقیم به کد داخل IDE اما در عین حال در موقع دیباگ سورسها را به شما نشان می دهد چون متوجه می شود این سورسها مال کدام جر فایل است اما در اکلیپس رفرس به ماجولها در حالت پیش فرض از داخل اکلیپس است و به سورس کامپایل شده توسط اکلیپس و نه جر فایل اینستال شده اگر هم ستینگ را تغییر دهید دیگر نمی توانید به سادگی در موقع دیباگ سورس ماجولهای دیگر را ببینید.
هر چند من به جز در این مورد طرفدار اکلیپس هستم اما همنشینی میون و اکلیپس حتما به خون ریزی منجر خواهد شد البته قربانی هم برنامه نویس است.