JavaRush /وبلاگ جاوا /Random-FA /قسمت 4: مبانی Maven

قسمت 4: مبانی Maven

در گروه منتشر شد
این مطالب بخشی از مجموعه "مقدمه ای بر توسعه سازمانی" است. مقالات قبلی: قسمت 4. مبانی Maven - 1Maven ابزاری برای مدیریت و ساخت پروژه ها است - یک دستیار واقعی برای برنامه نویس جاوا. این زندگی را برای توسعه دهنده در تمام مراحل کار آسان تر می کند: از ایجاد ساختار پروژه و اتصال کتابخانه های لازم تا استقرار محصول در سرور. هنگام کار با هر فریم ورک، باید از Maven استفاده کنید. بنابراین بیایید امروز به عملکردهای اصلی آن نگاه کنیم و ببینیم چگونه باید از آنها استفاده کرد.

نصب مرحله به مرحله Maven

  1. ابتدا باید Maven را با دانلود از این لینک نصب کنید .

  2. در مرحله بعد، باید آرشیو دانلود شده را باز کنید و متغیر محیطی M2_HOME را روی پیوندی به محل آرشیو بدون بسته بندی تنظیم کنید. به عنوان مثال، C:\Program Files\maven\

  3. برای بررسی اینکه همه چیز نصب شده است، در خط فرمان بنویسید:

    نسخه mvn

  4. اگر اطلاعات نسخه Maven، Java و غیره نمایش داده شد، شما آماده حرکت هستید.

  5. حالا IntelliJIDEA را باز کنید و یک پروژه جدید ایجاد کنید. در پنجره اول، Maven را انتخاب کنید:

    قسمت 4. مبانی Maven - 2
  6. روی Next کلیک کنید و کادر محاوره ای زیر را پر کنید:

    قسمت 4. مبانی Maven - 3
  7. در مرحله بعد، به صورت استاندارد یک پروژه در محل مورد نیاز ایجاد کنید.

    پس از ایجاد پروژه، به ساختار آن توجه کنید:

    قسمت 4. مبانی Maven - 4
این ساختار استاندارد برای پروژه Maven است :
  • پوشه src/main/java شامل کلاس های جاوا می باشد.
  • در src/main/resources - منابعی که برنامه ما از آنها استفاده می کند (صفحات HTML، تصاویر، شیوه نامه ها و غیره)؛
  • src/test - برای تست ها.
به فایلی به نام pom.xml نیز توجه کنید . این فایل اصلی برای مدیریت Maven است . کل توضیحات پروژه در اینجا آمده است. هنوز اطلاعات زیادی در آنجا وجود ندارد، اما اکنون آن را اضافه می کنیم.

مدیریت وابستگی در Maven

ممکن است با عبارت “مدیر وابستگی” یا “مدیر وابستگی” برخورد کرده باشید. Maven می تواند همه این کارها را انجام دهد. با تشکر از Maven، نیازی به صرف زمان زیادی برای جستجوی کتابخانه مورد نیاز در اینترنت، دانلود آن و سپس اتصال آن به پروژه ندارید: فقط کافی است آن مورد نیاز را به لیست وابستگی‌های Maven اضافه کنید. وابستگی ها در گره XML وابستگی ها نوشته می شوند، فرض کنید برای کار ساده با فایل ها به کتابخانه IO Apache Commons در پروژه خود نیاز دارید. برای افزودن یک کتابخانه، پنج خط در pom.xml بنویسید:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
pom.xml شما اکنون باید به شکل زیر باشد:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
پس از این، به IntelliJ IDEA اجازه دهید تا وابستگی را وارد کند (یک کادر گفتگو باید در گوشه سمت راست پایین ظاهر شود). اکنون کتابخانه آماده استفاده است:
import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
تمام وابستگی های بعدی نیز باید در داخل تگ <dependencies> نوشته شوند. شاید از خود بپرسید: چگونه می دانید چه اطلاعاتی را باید در مورد یک کتابخانه در تگ <dependency> وارد کنید؟ اینجا همه چیز ساده است. در چنین مواردی همیشه سه پارامتر groupId، artifactId و version مشخص می شود. شما می توانید این پارامترها را به دو روش دریافت کنید:
  1. در وب سایت کتابخانه اگر به Apache Commons IO نیاز داریم، به وب سایت رسمی بروید و تب Dependency Information را انتخاب کنید. تمام اطلاعات لازم در اینجا موجود است - شما به سادگی می توانید آن را کپی کرده و به بخش وابستگی های ما اضافه کنید.

  2. در مخزن Maven . "apache commons io" را در جستجو وارد کنید و تمام نسخه های موجود کتابخانه را خواهید دید. پس از انتخاب مورد مورد نیاز، فقط کپی کنید:

    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>

    و به pom.xml خود اضافه کنید.

انواع مخازن Maven

لازم است دوباره به مخزن Maven اشاره کنیم، زیرا ما در واقع دو مورد از آنها - خارجی (جهانی) و محلی را در رایانه شما داریم. تمام کتابخانه هایی که به پروژه های خود اضافه می کنید در مخزن محلی ذخیره می شوند. هنگامی که Maven وابستگی مورد نیاز را به پروژه اضافه می کند، ابتدا مخزن محلی را برای وجود چنین کتابخانه ای بررسی می کند و تنها در صورتی که آن را در آنجا پیدا نکرد، به کتابخانه خارجی روی می آورد. همانطور که می بینید، می توانید از Maven برای اضافه کردن وابستگی ها استفاده کنید، اما این تنها کاری نیست که می تواند انجام دهد.

ساخت پروژه جاوا با استفاده از Maven

این ویژگی ممکن است برای یک تازه کار بی معنی به نظر برسد. اگر یک IDE وجود دارد، چرا این مورد نیاز است؟ اما نه! در مرحله اول، سروری که باید برنامه را روی آن بسازید ممکن است نه تنها محیط توسعه نداشته باشد، بلکه یک رابط گرافیکی نیز داشته باشد. ثانیا، در پروژه های بزرگ، Maven با وظایف مونتاژ پروژه بهتر کنار می آید. بنابراین، بیایید خودمان را با انتظار عذاب ندهیم، بلکه روند ساخت اپلیکیشن با استفاده از Maven را در نظر بگیریم.

فاز

فرآیند ساخت اپلیکیشن، چرخه حیات پروژه Maven نامیده می شود و شامل فازهایی است. می توانید با کلیک بر روی Maven>example>Lifecycle در گوشه سمت راست بالا، در IDEA به آنها نگاه کنید: قسمت 4. Maven Basics - 5همانطور که می بینید، 9 مرحله وجود دارد:
  1. پاک - تمام فایل های کامپایل شده را از دایرکتوری هدف حذف می کند (محلی که مصنوعات نهایی ذخیره می شوند).
  2. اعتبارسنجی - بررسی اینکه آیا تمام اطلاعات برای ساخت پروژه در دسترس است یا خیر.
  3. کامپایل - فایل های دارای کد منبع کامپایل می شوند.
  4. تست - تست ها راه اندازی می شوند.
  5. بسته - فایل های کامپایل شده بسته بندی می شوند (به آرشیو jar، war و غیره).
  6. تأیید - بررسی ها برای تأیید آمادگی فایل بسته بندی شده انجام می شود.
  7. نصب - بسته در مخزن محلی قرار می گیرد. اکنون می توان آن را توسط پروژه های دیگر به عنوان یک کتابخانه خارجی استفاده کرد.
  8. سایت - مستندات پروژه ایجاد می شود.
  9. deploy - آرشیو جمع آوری شده در یک مخزن از راه دور کپی می شود.
تمام مراحل به صورت متوالی اجرا می شوند: شما نمی توانید مثلاً فاز چهارم را شروع کنید تا فازهای 1-3 تکمیل شوند. دو راه برای راه اندازی فاز وجود دارد:
  • از طریق خط فرمان:

    پکیج mvn

    قسمت 4. Maven Basics - 6
  • با استفاده از Intellij IDEA:

    قسمت 4. Maven Basics - 7

    قبل از راه اندازی بسته، مراحل اعتبار سنجی، کامپایل و آزمایش انجام می شود. استثنا فاز تمیز است. توصیه می شود قبل از ساخت هر پروژه جدید آن را فراخوانی کنید. فازها را می توان با فاصله از هم جدا کرد:

    پکیج تمیز mvn.

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

پلاگین ها

برای افزودن یک افزونه Maven به پروژه، توضیحات آن، شبیه به وابستگی ها، باید در pom.xml در تگ های <build> و <plugins> قرار گیرد. به عنوان مثال، ما به یک افزونه نیاز داریم تا بررسی کنیم که تمام کتابخانه های خارجی ما از آخرین نسخه ها استفاده می کنند. پس از کمی جستجو در اینترنت، می توانید این افزونه را به همراه دستورالعمل استفاده پیدا کنید. بیایید groupId، artifactId و نسخه آن را تنظیم کنیم. بیایید بنویسیم که او باید به چه اهدافی و در چه مرحله ای دست یابد. در مورد ما، بررسی وابستگی در pom.xml فعلی روی مرحله اعتبارسنجی تنظیم شده است. اکنون "حافظه" ما به این شکل است:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
ما همچنان می توانیم به کار روی پروژه خود ادامه دهیم. اما بیایید سعی کنیم نسخه Apache Commons IO را به 2.0 تغییر دهیم و پروژه را شروع کنیم. دریافت می کنیم: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1] در اینجا یک خطای ساخت ناشی از افزونه داریم. پیام خطا بیان می کند که ما از نسخه 2.0 زمانی که نسخه 2.6 در دسترس است استفاده می کنیم. به طور کلی، Maven ابزار بسیار مفیدی است. ممکن است در ابتدا استفاده از آن دشوار به نظر برسد، اما تمرین کنید، پروژه های خود را تحت Maven ایجاد کنید و پس از مدتی از نتیجه بسیار خوشحال خواهید شد. این مقاله به عمد بسیاری از جزئیات را در مورد Maven حذف کرد - ما روی موارد ضروری تمرکز کردیم. اما هیچ محدودیتی برای کمال وجود ندارد: می توانید اطلاعات بیشتری در مورد Maven در وب سایت رسمی محصول بخوانید . قسمت 5. سرولت. نوشتن یک برنامه وب ساده قسمت 6. ظروف Servlet قسمت 7. معرفی الگوی MVC (Model-View-Controller) قسمت 8. نوشتن یک برنامه کوچک فنری بوت
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION