CodeGym /בלוג Java /Random-HE /חלק 4. היסודות של Maven
John Squirrels
רָמָה
San Francisco

חלק 4. היסודות של Maven

פורסם בקבוצה
חומר זה הוא חלק מסדרת "מבוא לפיתוח ארגוני". מאמרים קודמים: חלק 4. היסודות של מייבן - 1Maven הוא כלי לניהול ובניית פרויקטים - עוזר מועיל של מתכנת Java. זה מקל על המפתחים בכל שלב בעבודה: מיצירת מבנה הפרויקט וחיבור הספריות הדרושות ועד לפריסת המוצר בשרת. תצטרך להשתמש ב-Maven כשאתה עובד עם מסגרת כלשהי. אז, היום בואו נסתכל על הפונקציות העיקריות שלו ונראה כיצד להשתמש בהן.

התקנה שלב אחר שלב של Maven

  1. ראשית, עלינו להתקין את Maven. הורד אותו מהקישור הזה .

  2. לאחר מכן, פתח את הארכיון שהורדת והגדר את משתנה הסביבה M2_HOME למיקום הארכיון שנפרם. לדוגמה, C:\\Program Files\\maven\\

  3. כדי להבטיח שהכל מותקן, בצע את הפעולות הבאות בשורת הפקודה:

    mvn -גרסה

  4. אם מוצג מידע הגרסה עבור Maven, Java וכו', אז הכל מוכן לפעולה.

  5. כעת פתח את IntelliJ IDEA וצור פרויקט חדש. בחלון הראשון, בחר Maven:

    חלק 4. היסודות של מייבן - 2
  6. לחץ על "הבא" ומלא את החלון שמופיע:

    חלק 4. היסודות של מייבן - 3
  7. לאחר מכן, כרגיל, צור פרויקט היכן שתרצה.

    לאחר יצירת הפרויקט, שימו לב למבנה שלו:

    חלק 4. היסודות של מייבן - 4
זהו המבנה הסטנדרטי של פרויקט Maven :
  • התיקיה src/main/java מכילה את מחלקות ה-Java
  • תיקיית src/main/resources מכילה את המשאבים המשמשים את האפליקציה (דפי HTML, תמונות, גיליונות סגנונות וכו')
  • תיקיית src/test מיועדת לבדיקות
שימו לב גם לקובץ שנקרא pom.xml . זהו הקובץ הראשי לניהול Maven . תיאור הפרויקט כולו כלול כאן. אין יותר מדי מידע כרגע, אבל נוסיף אותו עכשיו.

ניהול תלות ב-Maven

ייתכן שנתקלתם בביטוי "מנהל תלות". מייבן יודעת לנהל תלות. הודות ל-Maven, אינך צריך להשקיע זמן רב בחיפוש באינטרנט אחר ספרייה נדרשת, הורדתה ולאחר מכן חיבורה לפרויקט שלך. במקום זאת, אתה פשוט מוסיף את הספרייה הנדרשת לרשימת התלות ב-Maven.

התלות מצוינות בצומת התלות של הקובץ pom.xml

נניח שאתה צריך את ספריית Apache Commons IO בפרויקט שלך כדי לפשט את העבודה עם קבצים. כדי להוסיף ספריה, נכתוב חמש שורות ב-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, אנחנו הולכים לאתר הרשמי ובוחרים בכרטיסייה "מידע תלות". כל המידע הדרוש נמצא כאן - אתה יכול פשוט להעתיק אותו ולהוסיף אותו לצומת <dependencies>.

  2. במאגר של מייבן . הזן "apache commons io" בשורת החיפוש ותראה את כל הגרסאות הזמינות של הספרייה. לאחר בחירת המתאים, פשוט העתק את הדברים הבאים:

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

    והוסף אותו ל-pom.xml שלך.

סוגי מאגרי מאבן

כדאי לנו להזכיר שוב את מאגרי Maven, כי למעשה יש לנו שניים מהם: מאגר מרוחק (מרכזי) ומאגר מקומי (במחשב שלך). כל הספריות שאתה מוסיף לפרויקטים שלך נשמרות במאגר המקומי. כאשר Maven מוסיף תלות נדרשת לפרויקט, הוא בודק תחילה אם הספרייה כבר קיימת במאגר המקומי. הוא ניגש למאגר המרוחק רק אם הוא לא מוצא את הספרייה באופן מקומי. כפי שאתה יכול לראות, אתה יכול להשתמש ב-Maven כדי להוסיף תלות, אבל זה לא כל מה שהוא יכול לעשות.

בניית פרויקט Java באמצעות Maven

יכולת זו עשויה להיראות חסרת טעם למתחילים. למה אנחנו צריכים את זה אם יש לנו IDE? הרשה לי להסביר. ראשית, ייתכן שלשרת שבו אתה צריך לבנות את היישום שלך אין סביבת פיתוח או ממשק גרפי. שנית, בפרויקטים גדולים, מייבן עושה עבודה טובה יותר בבניית הפרויקט. אז בלי להתלהב יותר, נשקול את התהליך של בניית אפליקציה באמצעות Maven.

שלבים

תהליך בניית האפליקציה ידוע כמחזור החיים של פרויקט Maven, והוא מורכב משלבים. אתה יכול להסתכל עליהם ב-IDEA על ידי לחיצה על Maven > דוגמה > מחזור חיים בפינה השמאלית העליונה: חלק 4. היסודות של מייבן - 5כפי שאתה יכול לראות, ישנם 9 שלבים:
  1. נקי - מסיר את כל קבצי הקומפילציה מספריית היעד (המקום שבו נשמרים חפצים מוגמרים)
  2. validate - בודק אם כל המידע הנדרש לבניית הפרויקט קיים
  3. compile - קומפילציה של קובצי קוד מקור
  4. מבחן - מתחיל מבחנים
  5. חבילה - קבצי הידור של חבילות (בארכיון JAR, WAR וכו')
  6. אימות - בודק אם הקובץ הארוז מוכן
  7. התקן - מציב את החבילה במאגר המקומי. כעת ניתן להשתמש בו על ידי פרויקטים אחרים כספרייה חיצונית
  8. אתר - יוצר תיעוד פרויקט
  9. deploy - מעתיק את הארכיון הבנוי למאגר המרוחק
כל השלבים מבוצעים ברצף: לדוגמה, לא ניתן להתחיל את השלב הרביעי עד להשלמת שלבים 1-3. ישנן שתי דרכים להתחיל שלב:
  • דרך שורת הפקודה:

    חבילת mvn

    חלק 4. היסודות של מייבן - 6
  • באמצעות IntelliJ IDEA:

    חלק 4. היסודות של מייבן - 7

    לפני תחילת שלב החבילה, מבוצעים שלבי האימות, ההידור והבדיקה. השלב הנקי הוא חריג. מומלץ להפעיל את השלב הזה לפני כל בנייה של הפרויקט. אתה יכול לרשום שלבים מרובים, להפריד אותם עם רווחים:

    חבילה נקייה של mvn.

כמו כן, לכל שלב יש פרה-פאזה ו-post-phase: למשל, pre-deploy, post-deploy, pre-clean, post-clean וכו' אבל הם משמשים די נדיר. בנוסף, לכל שלב יש מטרות. יעדים סטנדרטיים מוגדרים כברירת מחדל. מטרות נוספות מתווספות על ידי תוספים של Maven. לפעמים במהלך שלב, ייתכן שיהיה עליך לבצע פונקציות נוספות. יש תוספים של Maven בשביל זה. רשימה של תוספים רשמיים ניתן למצוא באתר Maven . אבל אתה צריך לדעת שיש הרבה תוספים מותאמים אישית שניתן למצוא באתרי צד שלישי. וכמובן, אם מתעורר צורך אקזוטי, אתה תמיד יכול לכתוב תוסף מותאם אישית בעצמך .

תוספים

כדי להוסיף תוסף Maven לפרויקט, עלינו להוסיף את התיאור שלו לקובץ pom.xml, באמצעות <build>ותגיות <plugins>, בדומה לאופן שבו הוספנו תלות. לדוגמה, נניח שאנו צריכים תוסף כדי לוודא שאנו משתמשים בגרסה העדכנית ביותר של כל הספריות החיצוניות שלנו. לאחר קצת חיפוש באינטרנט, תוכל למצוא את התוסף הזה והוראות כיצד להשתמש בו. בואו נגדיר את groupId, artifactId והגרסה. נציין אילו מטרות התוסף חייב למלא ובאיזה שלב. במקרה שלנו, בדיקת התלות ב-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