JavaRush /בלוג Java /Random-HE /חלק 4: יסודות מייבן

חלק 4: יסודות מייבן

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

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

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

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

  3. כדי לבדוק שהכל מותקן, כתוב בשורת הפקודה:

    גרסה mvn

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

  5. כעת פתח את IntelliJIDEA וצור פרויקט חדש. בחלון הראשון, בחר 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. תלות נכתבת בצומת 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, עבור אל האתר הרשמי ובחר בכרטיסייה מידע תלות. כל המידע הדרוש נמצא כאן - אתה יכול פשוט להעתיק אותו ולהוסיף אותו למדור התלות שלנו.

  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. קומפיל - קבצים עם קוד מקור מורכבים;
  4. מבחן - בדיקות יוצאות לדרך;
  5. חבילה - קבצים מהודרים נארזים (בארכיון jar, war, וכו');
  6. לאמת - בדיקות מבוצעות כדי לאשר את מוכנות הקובץ הארוז;
  7. install - החבילה ממוקמת במאגר המקומי. כעת ניתן להשתמש בה על ידי פרויקטים אחרים כספרייה חיצונית;
  8. אתר - נוצר תיעוד הפרויקט;
  9. deploy - הארכיון שנאסף מועתק למאגר מרוחק.
כל השלבים מבוצעים ברצף: לא ניתן להתחיל, נניח, את השלב הרביעי עד להשלמת שלבים 1-3. ישנן שתי דרכים להשיק שלב:
  • דרך שורת הפקודה:

    חבילת mvn

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

    חלק 4. מייבן יסודות - 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