آپاچی ماون

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
ابزار تعریف و مدیریت پروژه
وب‌گاه apache.maven.org

Maven (با تلفظ مِی‌وِن) یک ابزار مدیریت و تعریف پروژه بر پایه مفهوم POM - Project Object Model می باشد. Maven بمعنی مخزن دانش می باشد. Maven یک روش جامع برای مدیریت پروژه از زمان کامپایل تا انتشار تا مستند سازی تا همکاری تیمی فراهم می سازد ، در یک جمله Maven یک چارچوب مدیریت پروژه (Project Management Framework) می باشد. maven ابزار ساخت و مدیریت پروژه های جاوا که تا حدودی شبیهapachi ant ولی در ساختار کلی متفاوت است.البته می توان maven را در پروژه های c# , Ruby ,scala و زبان های دیگر نیز مورد استفاده قرار داد.maven قسمتی از پروژه Jakarta بود.maven با استفاده از فایل XML پروژه نرم‌افزاری در حال ساخت را توصیف می‌کند که شامل توصیف وابستگی پروژه به ماژول‌ها، کتابخانه‌ها و سایر قطعات نرم‌افزاری دیگر می‌باشد. هم‌چنین برخی از وظایف تعریف شده مانند کامپایل کد و بسته‌بندی نرم‌افزاری را در خود دارد. maven به صورت پویا کتابخانه‌های جاوا و پلاگین‌های خود را از یک یا چند مخزن مانند مخزن مرکزی دانلود کرده و در یک کش محلی ذخیره می‌کند. این کش محلی می‌تواند به وسیله پروژه‌های محلی به‌روز‌رسانی شود. مخزن‌های عمومی هم می‌توانند به‌روز‌رسانی شوند. MAVEN با استفاده از معماری مبتنی بر پلاگین ساخته شده است که به آن اجازه می دهد تا از هر برنامه ای که از طریق ورودی استاندارد قابل کنترل است استفاده کند.از لحاظ تئوری، این مساله به همه افراد اجازه می دهد تا برای هر زبان دیگری پلاگین هایی بنویسند که واسط ابزار ساخت شود(کامپایلرها، ابزار تست واحد، و غیره).در واقع، پشتیبانی و استفاده برای زبان های دیگر به غیر از جاوا حداقل بوده است.در حال حاضر یک پلاگین برای چارچوب دات نت وجود دارد و حفظ می شود، [4 و C / C + + پلاگین های بومی برای MAVEN 2 نگهداری می شده است.

پیوند به بیرون[ویرایش]

مثال[ویرایش]

مفاهیم[ویرایش]

پروژه مدل شی[ویرایش]

یک پروژه مدل شی(POS)فراهم می کند همه پیکربندی برای یک تک پروژه.پیکر بندی عمومی پوشش می دهد نام پروژه این مالک و این وابستگی بر دیگر پروژه.همچنین می توانید یکی از مراحل فردی از فرایند ساخت، که به عنوان اجرا پیکربندی پلاگین. به عنوان مثال، می توانید کامپایلر، پلاگین جاوا نسخه 1.5 تا برای تدوین استفاده از پیکربندی، و یا مشخص به بسته بندی این پروژه حتی اگر برخی از تست واحد با شکست مواجه است. پروژه های بزرگ را باید به ماژول های مختلف، و یا زیر پروژه ها، هر کدام با خود POM خود را تقسیم می شود. پس از آن میتوانید POM ریشه که از طریق آن می تواند تمام ماژول را تنها با یک دستور کامپایل ارسال.POMs همچنین می توانید تنظیمات را از POMs دیگر به ارث برید. همه POMs از POM سوپر به ارث می برند [6] به طور پیش فرض است. سوپر POM فراهم می کند تنظیمات پیش فرض، مانند راهنماها منبع به طور پیش فرض، پلاگین به طور پیش فرض، و غیره.

پلاگین ها[ویرایش]

بسیاری از قابلیت های MAVEN در پلاگین (افزایه) . پلاگین فراهم می کند مجموعه ای از اهداف است که می تواند با استفاده از سینتکس زیر اجرا شود:

 mvn [plugin-name]:[goal-name]

به عنوان مثال، یک پروژه جاوا را می توان با کامپایلر پلاگین کامپایل هدف وارد شده [7] در حال اجرا توسط mvn compiler:compile کند.پلاگین برای ساخت، تست، مدیریت، منبع کنترل، در حال اجرا یک وب سرور، ایجاد گرفتگی فایل های پروژه و بسیار بیشتر است. [8] پلاگین در <plugins> بخش معرفی و پیکربندی pom.xml فایل. بعضی از پلاگین های اساسی در هر پروژه به طور پیش فرض گنجانده شده اند و تنظیمات پیش فرض محسوس است.

با این حال، این امر می تواند دست و پا گیر است اگر یک نفر باید برای اجرای چندین هدف به صورت دستی برای ساخت، تست و بسته بندی یک پروژه:

 mvn compiler:compile
 mvn surefire:test
 mvn jar:jar

MAVEN در چرخه حیات مفهوم دسته این موضوع است. لاگین هستند که راه اصلی برای گسترش MAVEN. توسعه MAVEN پلاگین را می توان توسط گسترش کلاس org.apache.maven.plugin.AbstractMojo انجام می شود. یک مثال ساده در سایت MAVEN در مرکز صفحه پلاگین توسعه دهندگان داده می شود و نمونه دقیق تر در آپاچی MAVEN 3 کتاب خلاصه داده شده است. [9] . کد مثال و توضیح برای MAVEN پلاگین برای ایجاد یک ماشین مجازی مبتنی بر ابر سرور برنامه کاربردی در حال اجرا است در این مقاله به طور خودکار توسعه و مدیریت ماشین های مجازی، ابر داده شده است. [10]

ساختن دوره حیات[ویرایش]

چرخه عمر نرم‌افزار لیستی از مراحل به نام است که می تواند مورد استفاده قرار گیرد به منظور اجرای هدف است. یکی از lifecycles استاندارد MAVEN چرخه حیات به طور پیش فرض، که شامل مراحل زیر است، در این دستور عبارت است از:[۱]

1. منابع فرایند
2. کامپیل
3. فرایند ازمون و منابع
4. کامپایل ازمون
5. ازمون
6. بسته
7. نصب
8. گسترش

اهداف ارائه شده توسط این پلاگین ها را می توان با مراحل مختلف چرخه حیات همراه است. به عنوان مثال، به طور پیش فرض، هدف "کامپایلر کامپایل" با کامپایل فاز همراه، در حالی که هدف "یقین: آزمون با آزمون مرحله همراه است. هنگامی که فرمان

ازمون maven

اجرا شده است، MAVEN تمام اهداف در ارتباط با هر یک از مراحل تا مرحله تست را اجرا کنید. گل های مرتبط با منابع فرایند فاز، پس از آن "گردآورنده: کامپایل"، و به همین ترتیب تا بالاخره اجرا می شود: "یقین: آزمون": پس از آن خواهد شد "منابع منابع" اجرای گل.

MAVEN همچنین دارای lifecycles های استاندارد برای تمیز کردن این پروژه و برای تولید یک سایت پروژه. اگر تمیز کردن بخشی از چرخه حیات به طور پیش فرض بود، این پروژه خواهد بود تمیز هر بار از آن ساخته شد. این به وضوح نامطلوب است، بنابراین تمیز کردن چرخه عمر خود آن داده شده است.

به lifecycles استاندارد، باید قادر به ساخت، تست و نصب هر MAVEN پروژه با استفاده از فرمان mvn install

وابستگی[ویرایش]

در بخش عنوان مثال اشاره کرد در دست زدن به مکانیسم وابستگی، MAVEN. پروژه ای است که نیاز به هایبرنیت کتابخانه به سادگی به اعلام پروژه هایبرنیت مختصات در POM آن است. MAVEN به طور خودکار وابستگی و وابستگی که هایبرنیت خود نیاز به (نام متعدی وابستگی) و ذخیره آنها را در مخزن محلی کاربر را دانلود کنید. MAVEN 2 مرکزی مخزن [3] به طور پیش فرض مورد استفاده قرار می گیرد تا برای کتابخانه ها جستجو کنید، اما می توانید پیکربندی مخازن (مثلاً مخازن شرکت خصوصی) مورد استفاده در POM.

موتورهای جستجو مانند MAVEN مرکزی وجود دارد [12] ، که می تواند مورد استفاده قرار گیرد برای پیدا کردن مختصات برای کتابخانه ها و چارچوب های مختلف منبع باز است.

پروژه های در حال توسعه بر روی یک ماشین می تواند بر روی یکدیگر از طریق مخزن محلی بستگی دارد. مخزن محلی، ساختار پوشه ساده که در عمل هر دو به عنوان حافظه نهان برای وابستگیهای دریافت و به عنوان محل ذخیره سازی مرکزی برای شی ء به صورت محلی ساخته شده است. MAVEN دستور mvn install ایجاد یک پروژه و مکان های باینری آن در مخزن محلی است. سپس در دیگر پروژهها هم می توانید این پروژه را با تعیین مختصات خود را در POMs خود استفاده کنند.

مقایسه با ابزارهای مشابه[ویرایش]

مقایسه Maven با Ant[ویرایش]

تفاوت اساسی بین MAVEN و مورچه این است که طراحی MAVEN را در مورد تمام پروژه ها به عنوان داشتن یک ساختار خاص و مجموعه ای از وظیفه پشتیبانی از کار جریان (به عنوان مثال به دست آوردن منابع از کنترل منبع و کامپایل پروژه، آزمایش واحد، و غیره). در حالی که اکثر پروژه های نرم‌افزار در واقع حمایت از این عملیات و در واقع یک ساختار تعریف شده، MAVEN مستلزم آن است که این ساختار و عملیات جزئیات پیاده سازی در فایل POM تعریف شده است. بنابراین، MAVEN متکی بر کنوانسیون در نحوه تعریف پروژه ها و در لیست جریان کار است که به طور کلی در همه پروژه ها. ین محدودیت در طراحی است و بیشتر شبیه یک IDE دستگیره پروژه و منافع، مانند بسیاری از پروژه تعریف موجز و امکان یکپارچه سازی به صورت خودکار پروژه MAVEN با سایر ابزار های توسعه از جمله IDE های آن را فراهم می کند، ساخت سرویس دهنده ها، و غیره

حرکت نزولی است که نیاز به یک کاربر به اولین پروژه از MAVEN از نقطه نظر و MAVEN با این نسخهها کار با پروژه های، چرا که چه اتفاقی می افتد وقتی که یکی از اجرا مرحله در MAVEN است از بررسی فایل پروژه MAVEN بلافاصله آشکار نیست. این ساختار مورد نیاز است نیز اغلب یک مانع در مهاجرت یک پروژه بالغ به MAVEN، به خاطر آن است که معمولاً سخت از روش های دیگر وفق دهند.

در مورچه ها، پروژه ها از دیدگاه فنی این ابزار واقعاً وجود ندارد. مورچه با این نسخهها کار با XML اسکریپت های ساخت تعریف شده در یک یا چند فایل. هدف از این فایل ها را پردازش و هر هدف اجرا وظایف است. هر وظیفه انجام عملیات فنی مانند در حال اجرا یک کامپایلر و یا کپی کردن فایل ها در اطراف. وظایف در درجه اول در نظم داده شده توسط وابستگی تعریف شده خود را در کارهای دیگر اعدام شد. بنابراین، مورچه ابزاری است که زنجیر با هم وظایف و اجرا آنها را در بین وابستگیها و دیگر شرایط بولی است. مزایای ارائه شده توسط Ant ها نیز متعدد است. این است زبان XML بهینه سازی شده برای تعریف واضح تر از هر چه کار انجام می دهد و آنچه در آن بستگی دارد. همچنین، تمام اطلاعات در مورد چه خواهد بود، هدف مورچه اعدام را می توان در اسکریپت مورچه یافت می شود.

یک توسعه دهنده با مورچه آشنا نیست به طور معمول قادر به تعیین یک اسکریپت ساده مورچه می کند که فقط با بررسی اسکریپت باشد. این درست است که معمولاً برای MAVEN نیست. ا این حال، حتی توسعه دهندگان با تجربه است که به یک پروژه با استفاده از Ant نمی توان استنباط ساختار سطح بالاتر از یک اسکریپت Ant است و آنچه در آن بدون بررسی فیلمنامه در جزئیات انجام می دهد. با توجه به پیچیدگی اسکریپت، این می تواند به سرعت یک چالش دلهره آور تبدیل شده است. MAVEN، یک توسعه دهنده که قبلاً با سایر پروژه MAVEN کار می کرد می تواند به سرعت به بررسی ساختار یک پروژه MAVEN پیش از این هرگز دیده می شود و اجرای استاندارد MAVEN کار جریان در برابر آن در حالی که در حال حاضر دانستن آنچه به عنوان نتیجه انتظار می رود. مکن است که به استفاده از اسکریپت های Ant که تعریف می شوند و رفتار به شیوه ای یکسان برای همه پروژه ها را در یک گروه کاری یا سازمان است. با این حال، هنگامی که تعداد و پیچیدگی پروژه ها افزایش می یابد، آن را نیز بسیار آسان است تا از یکنواختی در ابتدا مورد نظر خیره شده بودیم. با MAVEN، این است که کمتر از یک مشکل است زیرا این ابزار همیشه تحمیل یک راه خاص برای انجام کارها.

توجه داشته باشید که این امکان وجود دارد برای گسترش و پیکربندی MAVEN در راه است که حرکت از راه MAVEN از انجام کارهایی است

ادغام IDE[ویرایش]

ضافه کردن فایرفاکس را به چند محبوب محیط توسعه یکپارچه وجود دارد که برای ادغام از MAVEN با ویرایش ساخت محیط برنامه نویسی مکانیزم و منبع ابزار اجازه می دهد MAVEN به کامپایل پروژه از درون IDE، و همچنین به تنظیم CLASSPATH برای تکمیل کد، برجسته کردن خطاهای کامپایلر، و غیره نمونه هایی از IDE های توسعه حمایت مردمی با MAVEN عبارتند از:

این افزونه همچنین ارائه توانایی را ویرایش کنید POM و یا استفاده از POM مجموعه کامل وابستگیهای پروژه برای تعیین به طور مستقیم در داخل محیط برنامه نویسی.

برخی از ویژگی های ساخته شده در از پر طرفدارترین IDE ضبط وقتی IDE دیگر انجام تدوین است. به عنوان مثال، JDT گرفتگی است که توانایی یک فایل جاوا به کامپایل مجدد پس از آن ویرایش شده است. بسیاری از IDE ها با مجموعه ای صاف از پروژه ها به جای سلسله مراتب پوشه ها ترجیح داده شده توسط MAVEN کار می کنند. این پیچیده با استفاده از سیستم های SCM در IDE ها با استفاده از MAVEN. [13] [14] [15]

تاریخچه[ویرایش]

Maven ایجاد شده توسط جیسون ون Zyl Sonatype است، به عنوان subproject از توربین آپاچی در سال 2002 آغاز شد . در سال 2003، آن را بر روی انتخاب شد و مورد قبول به عنوان یک سطح بالا بنیاد نرم‌افزار آپاچی پروژه. در ژوئیه 2004، MAVEN به عنوان نقطه عطف مهم اول، V1.0 منتشر شد. MAVEN 2 V2.0 در ماه اکتبر سال 2005 پس از حدود 6 ماه در چرخه های بتا اعلام شد. MAVEN 3.0 در اکتبر 2010 منتشر شد و عمدتاً به عقب سازگار با MAVEN 2

آینده[ویرایش]

Maven اطلاعات شروع به در 2008 trickling. پس از هشت نسخه های آلفا، اولین نسخه بتا از MAVEN 3.0 در آوریل 2010 منتشر شد. MAVEN 3.0 تا دوباره روی پروژه زیرساخت های اصلی کشاورزی که POMs فایل مبتنی بر نمایندگی در حال حاضر از شیء در حافظه خود جدا شده است. گسترش امکان MAVEN 3.0 افزودنیهای فایرفاکس به اهرم فایل های پروژه غیر تعریف مبتنی بر XML است. زبان پیشنهاد شامل روبی (در حال حاضر در نمونه خصوصی جیسون ون Zyl)، YAML و برروی . کار تجربی برای YAML مبتنی بر POM فایل تعریف (نیاز به یک اسکریپت تبدیل خارجی اجرا می شود) شده است توسط سرنشین دان براون از Atlassian است.

توجه ویژه ای شده است برای اطمینان از سازگاری بین MAVEN 2 و 3 پرداخت می شود. برای بسیاری از پروژه ها، ارتقاء به MAVEN 3 تنظیم ساختار پروژه خود نیاز ندارند. بتا برای اولین بار از MAVEN 3 دیدم مقدمه ای از ساخت یکی از ویژگی های موازی که اهرم تنظیم تعداد هسته در ماشین های چند هسته ای و به خصوص برای پروژه های بزرگ چند ماژول مناسب است.

با توجه به ردیاب شماره MAVEN ، برنامه هایی برای MAVEN 3.1 وجود دارد، اما هیچ برنامه ای مشخص و یا تاریخ تعیین شده است. در حال حاضر کنده بزرگی که پشت اتش بخاری گذارده میشود از ویژگی های مردمی است.

نرم‌افزارهای مدیریت مخزن مِیوِن[ویرایش]

برای مدیریت مخزن تولیدات میون در کارسازی جدا از ایستگاه‌های توسعه. دو نرم‌افزار شناخته شده nexus و artifactory را میتوان نام برد. هر دو این نرم‌افزارها دارای یک نسخه اوپن سورس و یک نسخه پشتیبانی شوند pro هستند که دارای افزایه‌هایی برای ایجاد یکپارچه‌گی بیشتر با دیگر ابزارهای توسعه و دادن قابلیتهای بیشتر دیگری هستند.

همچنین نگاه کنید به[ویرایش]

پیوند به بیرون[ویرایش]

مطالعه بیشتر[ویرایش]

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا، «Apache Maven»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد.