תוסף מהדר Maven

מאמר זה הוא חלק מסדרה: • תוסף משאבי Maven

• תוסף Maven Compiler (מאמר נוכחי) • מדריך מהיר לתוסף ההתקנה של Maven

• התוסף Maven Failsafe

• מדריך מהיר לתוסף Maven Surefire

• התוסף Maven Deploy

• תוסף Maven Clean

• תוסף ה- Maven Verifier

• תוסף אתר Maven

• מדריך לתוספי Core Maven

1. סקירה כללית

הדרכה מהירה זו מציגה את מַהְדֵר תוסף, אחד מתוספי הליבה של כלי הבנייה Maven.

לסקירה כללית של תוספי הליבה האחרים, עיין במאמר זה.

2. מטרות תוסף

ה מַהְדֵר תוסף משמש לקמפל קוד המקור של פרויקט Maven. לתוסף זה שתי מטרות, שכבר קשורות לשלבים ספציפיים של מחזור החיים המוגדר כברירת מחדל:

  • לְלַקֵט לאסוף קבצי מקור עיקריים
  • testCompile לאסוף קבצי מקור בדיקה

הנה ה מַהְדֵר תוסף ב- POM:

 תוסף maven-compiler 3.7.0 ... 

אנו יכולים למצוא את הגרסה האחרונה של תוסף זה כאן.

3. תצורה

כברירת מחדל, ה- מַהְדֵר התוסף אוסף קוד מקור התואם ל- Java 5, והשיעורים שנוצרו עובדים גם עם Java 5 ללא קשר ל- JDK הנמצא בשימוש. אנו יכולים לשנות הגדרות אלה ב- תְצוּרָה אֵלֵמֶנט:

 1.8 1.8  

מטעמי נוחות, אנו יכולים להגדיר את גרסת Java כתכונות של ה- POM:

 1.8 1.8 

לפעמים אנחנו רוצים להעביר ויכוחים ל ג'אוואק מַהְדֵר. זה המקום בו מהדר ארגונים פרמטר שימושי.

לדוגמה, אנו יכולים לציין את התצורה הבאה עבור המהדר להתריע על פעולות לא מסומנות:

   -קסלינט: לא מסומן 

בעת הרכבת שיעור זה:

נתונים בכיתה ציבורית {List textList = ArrayList new (); חלל ציבורי addText (טקסט מחרוזת) {textList.add (טקסט); } רשימת ציבורים getTextList () {להחזיר this.textList; }}

נראה אזהרה לא מסומנת בקונסולה:

[אזהרה] ... Data.java: [7,29] המרה לא מסומנת נדרשת: java.util.List נמצא: java.util.ArrayList

כשתי המטרות של מַהְדֵר התוסף מאוגד אוטומטית לשלבים במחזור החיים של ברירת המחדל של Maven, אנו יכולים לבצע יעדים אלה באמצעות הפקודות לקמפל mvn ו מבחן קומפילציה של mvn.

4. עדכוני Java 9

4.1. תְצוּרָה

עד Java 8, השתמשנו במספר הגרסה כ- 1.איקס איפה איקס מייצג את גרסת Java, כמו 1.8 עבור Java 8.

עבור Java 9 ומעלה, אנו יכולים פשוט להשתמש ישירות במספר הגרסה:

 9 9 

באופן דומה, אנו יכולים להגדיר את הגרסה באמצעות נכסים כפי ש:

 9 9 

Maven הוסיפה את תמיכתה ב- Java 9 in 3.5.0, אז נצטרך לפחות את הגרסה הזו. נצטרך גם לפחות 3.8.0 של ה תוסף maven-compiler:

   org.apache.maven.plugins maven-compiler-plugin 3.8.0 9 9 

4.2. לִבנוֹת

עכשיו הגיע הזמן לבדוק את התצורה שלנו.

ראשית, בואו ניצור a MavenCompilerPlugin בכיתה בה אנו מייבאים חבילה ממודול אחר.

אחד פשוט הוא javax.xml.XMLConstants.XML_NS_PREFIX:

מחלקה ציבורית MavenCompilerPlugin {main static public void (String [] args) {System.out.println ("קידומת מרחב השמות של XML היא:" + XML_NS_PREFIX); }}

לאחר מכן, בואו נרכיב אותו:

mvn -q נקי לקמפל exec: java -Dexec.mainClass = "com.baeldung.maven.java9.MavenCompilerPlugin"

בעת שימוש ברירות המחדל של Java 9, נקבל שגיאה:

[שגיאה] שגיאת קומפילציה: [שגיאה] ... / MavenCompilerPlugin.java: [3,20] חבילה javax.xml אינה גלויה (חבילה javax.xml מוכרזת במודול java.xml, אך המודול com.baeldung.maven. java9 לא קורא את זה) [ERROR] ... / MavenCompilerPlugin.java: [3,1] ייבוא ​​סטטי רק ממעמדות וממשקים [ERROR] ... / MavenCompilerPlugin.java: [7,62] לא יכול למצוא סמל סמל: משתנה XML_NS_PREFIX מיקום: מחלקה com.baeldung.maven.java9.MavenCompilerPlugin

השגיאה נובעת מכך שחבילה זו נמצאת במודול נפרד שעדיין לא כללנו בבניין שלנו.

הדרך הפשוטה ביותר לפתור זאת היא על ידי יצירה מודול-info.java בכיתה ומציין שאנחנו דורשים את java.xml מודול:

מודול com.baeldung.maven.java9 {דורש java.xml; }

עכשיו נוכל לנסות שוב:

mvn -q נקי לקמפל exec: java -Dexec.mainClass = "com.baeldung.maven.java9.MavenCompilerPlugin"

והתפוקה שלנו תהיה:

קידומת מרחב השמות של XML היא: xml

5. מסקנה

במאמר זה עברנו על ה- מַהְדֵר תוסף ותיאר כיצד להשתמש בו. למדנו גם על התמיכה של Maven בג'אווה 9.

קוד המקור המלא של מדריך זה ניתן למצוא באתר GitHub.

הַבָּא » מדריך מהיר לתוסף ההתקנה של Maven « תוסף משאבי Maven הקודם

$config[zx-auto] not found$config[zx-overlay] not found