آپاچی ماون: تفاوت میان نسخهها
جز ربات ردهٔ همسنگ (۲۶) +مرتب (۸.۸): + رده:نرمافزارهایی که از پروانه آپاچی استفاده میکنند |
جزبدون خلاصۀ ویرایش |
||
خط ۶: | خط ۶: | ||
}} |
}} |
||
'''Maven''' یک ابزار مدیریت و تعریف پروژه بر پایه مفهوم POM - Project Object Model می باشد. Maven بمعنی مخزن دانش می باشد. |
'''Maven''' (با تلفظ مِیوِن) یک ابزار مدیریت و تعریف پروژه بر پایه مفهوم POM - Project Object Model می باشد. Maven بمعنی مخزن دانش می باشد. |
||
Maven یک روش جامع برای مدیریت پروژه از زمان کامپایل تا انتشار تا مستند سازی تا همکاری تیمی فراهم می سازد ، در یک جمله Maven یک چارچوب مدیریت پروژه (Project Management Framework) می باشد. |
Maven یک روش جامع برای مدیریت پروژه از زمان کامپایل تا انتشار تا مستند سازی تا همکاری تیمی فراهم می سازد ، در یک جمله Maven یک چارچوب مدیریت پروژه (Project Management Framework) می باشد. |
||
maven ابزار ساخت و مدیریت پروژه های جاوا که تا حدودی شبیهapachi ant ولی در ساختار کلی متفاوت است.البته می توان maven را در پروژه های c# , Ruby ,scala و زبان های دیگر نیز مورد استفاده قرار داد.maven قسمتی از پروژه Jakarta بود.maven با استفاده از فایل XML برای توصیف پروژه نرمافزاری در حال ساخته شده است، وابستگی خود را در ماژول های دیگر خارجی و قطعات، به منظور ساخت، دایرکتوری ها، و پلاگین های مورد نیاز. آن را با اهداف از پیش تعریف شده برای انجام برخی از وظایف تعریف شده به عنوان تلفیقی از کد و بسته بندی آن می آید. |
maven ابزار ساخت و مدیریت پروژه های جاوا که تا حدودی شبیهapachi ant ولی در ساختار کلی متفاوت است.البته می توان maven را در پروژه های c# , Ruby ,scala و زبان های دیگر نیز مورد استفاده قرار داد.maven قسمتی از پروژه Jakarta بود.maven با استفاده از فایل XML برای توصیف پروژه نرمافزاری در حال ساخته شده است، وابستگی خود را در ماژول های دیگر خارجی و قطعات، به منظور ساخت، دایرکتوری ها، و پلاگین های مورد نیاز. آن را با اهداف از پیش تعریف شده برای انجام برخی از وظایف تعریف شده به عنوان تلفیقی از کد و بسته بندی آن می آید. |
نسخهٔ ۹ ژوئیهٔ ۲۰۱۴، ساعت ۱۹:۳۶
این مقاله نیازمند تمیزکاری است. لطفاً تا جای امکان آنرا از نظر املا، انشا، چیدمان و درستی بهتر کنید، سپس این برچسب را بردارید. محتویات این مقاله ممکن است غیر قابل اعتماد و نادرست یا جانبدارانه باشد یا قوانین حقوق پدیدآورندگان را نقض کرده باشد. |
این مقاله نیازمند ویکیسازی است. لطفاً با توجه به راهنمای ویرایش و شیوهنامه، محتوای آن را بهبود بخشید. (ژوئیه ۲۰۱۲) |
مخزن | |
---|---|
وبگاه |
Maven (با تلفظ مِیوِن) یک ابزار مدیریت و تعریف پروژه بر پایه مفهوم POM - Project Object Model می باشد. Maven بمعنی مخزن دانش می باشد. Maven یک روش جامع برای مدیریت پروژه از زمان کامپایل تا انتشار تا مستند سازی تا همکاری تیمی فراهم می سازد ، در یک جمله Maven یک چارچوب مدیریت پروژه (Project Management Framework) می باشد. maven ابزار ساخت و مدیریت پروژه های جاوا که تا حدودی شبیهapachi ant ولی در ساختار کلی متفاوت است.البته می توان maven را در پروژه های c# , Ruby ,scala و زبان های دیگر نیز مورد استفاده قرار داد.maven قسمتی از پروژه Jakarta بود.maven با استفاده از فایل XML برای توصیف پروژه نرمافزاری در حال ساخته شده است، وابستگی خود را در ماژول های دیگر خارجی و قطعات، به منظور ساخت، دایرکتوری ها، و پلاگین های مورد نیاز. آن را با اهداف از پیش تعریف شده برای انجام برخی از وظایف تعریف شده به عنوان تلفیقی از کد و بسته بندی آن می آید. maven پویایی بارگذاری کتابخانه های جاوا و پلاگین های 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 وجود دارد، اما هیچ برنامه ای مشخص و یا تاریخ تعیین شده است. در حال حاضر کنده بزرگی که پشت اتش بخاری گذارده میشود از ویژگی های مردمی است.
همچنین نگاه کنید به
- Apache Continuum, a continuous integration server which integrates tightly with Maven
- Apache Archiva, a repository manager commonly used with Maven
- Apache Ant
- Apache Jelly, a tool for turning XML into executable code
- Apache Ivy, alternative dependency management tool for Java
- Gradle a build tool based on convention over configuration
- Sonatype Nexus, a repository manager commonly used with Maven
- Hudson
- List of build automation software
پیوند به بیرون
- ↑ http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference Maven Build Lifecycle Reference]
مطالعه بیشتر
منابع
مشارکتکنندگان ویکیپدیا. «Apache Maven». در دانشنامهٔ ویکیپدیای انگلیسی.