CodeGym /وبلاگ جاوا /Random-FA /قسمت 4. اصول اولیه Maven
John Squirrels
مرحله
San Francisco

قسمت 4. اصول اولیه Maven

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

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

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

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

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

    mvn -نسخه

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

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

    قسمت 4. مبانی Maven - 2
  6. روی "بعدی" کلیک کنید و پنجره ظاهر شده را پر کنید:

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

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

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

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

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

وابستگی ها در گره وابستگی های فایل pom.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. در وب سایت کتابخانه اگر به کتابخانه IO Apache Commons نیاز داریم، به وب سایت رسمی می رویم و برگه «اطلاعات وابستگی» را انتخاب می کنیم. تمام اطلاعات لازم در اینجا وجود دارد - می توانید به سادگی آن را کپی کرده و به <dependencies>گره اضافه کنید.

  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 > مثال > چرخه زندگی در گوشه سمت راست بالا به آنها در IDEA نگاه کنید: قسمت 4. اصول Maven - 5همانطور که می‌بینید، 9 مرحله وجود دارد:
  1. پاک - تمام فایل های کامپایل شده را از دایرکتوری هدف (محلی که مصنوعات نهایی ذخیره می شوند) حذف می کند.
  2. اعتبارسنجی - بررسی می کند که آیا تمام اطلاعات مورد نیاز برای ساخت پروژه وجود دارد یا خیر
  3. کامپایل - فایل های کد منبع را کامپایل می کند
  4. تست - تست ها را شروع می کند
  5. بسته - فایل های کامپایل شده بسته (در آرشیو JAR، WAR و غیره)
  6. تأیید - بررسی می کند که آیا فایل بسته بندی شده آماده است یا خیر
  7. نصب - بسته را در مخزن محلی قرار می دهد. اکنون می توان از آن توسط پروژه های دیگر به عنوان یک کتابخانه خارجی استفاده کرد
  8. سایت - مستندات پروژه را ایجاد می کند
  9. deploy - آرشیو ساخته شده را در مخزن راه دور کپی می کند
تمام مراحل به صورت متوالی انجام می شوند: به عنوان مثال، فاز چهارم را نمی توان تا زمانی که فازهای 1-3 تکمیل کرد، شروع کرد. دو راه برای شروع یک فاز وجود دارد:
  • از طریق خط فرمان:

    پکیج mvn

    قسمت 4. اصول Maven - 6
  • با استفاده از IntelliJ IDEA:

    قسمت 4. اصول Maven - 7

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

    پکیج تمیز mvn.

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

پلاگین ها

برای افزودن یک افزونه Maven به پروژه، باید توضیحات آن را به فایل pom.xml اضافه کنیم، با استفاده از <build>و <plugins>برچسب‌ها، مشابه نحوه افزودن وابستگی‌ها. برای مثال، فرض کنید به یک افزونه نیاز داریم تا تأیید کنیم که از آخرین نسخه تمام کتابخانه های خارجی خود استفاده می کنیم. پس از کمی جستجو در اینترنت، می توانید این افزونه و دستورالعمل استفاده از آن را پیدا کنید. بیایید groupId، artifactId و version را تنظیم کنیم. ما نشان خواهیم داد که افزونه چه اهدافی را باید برآورده کند و در چه مرحله ای. در مورد ما، بررسی وابستگی در pom.xml فعلی تنظیم شده است که در مرحله اعتبارسنجی اتفاق بیفتد. حالا فایل 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. Servlets و Java Servlet API. نوشتن یک برنامه وب ساده قسمت 6. ظروف Servlet قسمت 7. معرفی الگوی MVC (Model-View-Controller)
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION