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

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

במדריך זה נבחן הכרזה על תלות בסקריפט לבנות Gradle. לדוגמאות שלנו נשתמש ב- Gradle 6.7.

2. מבנה אופייני

נתחיל בתסריט Gradle פשוט לפרויקטים של Java:

תוספים {id 'java'} מאגרים {mavenCentral ()} תלות {הטמעה 'org.springframework.boot: spring-boot-starter: 2.3.4. RELEASE' testImplementation 'org.springframework.boot: spring-boot-starter-test : 2.3.4. שחרור '}

כפי שניתן לראות לעיל, יש לנו שלוש גושי קוד: תוספים, מאגרים, ו תלות.

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

מבנה ה- Gradle מושך את כל התלות ממאגר Maven Central, כהגדרתו של מאגרים לַחסוֹם.

בואו נתמקד כיצד אנו יכולים להגדיר תלות.

3. תצורות תלות

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

3.1. כיצד להכריז על תלות

כדי להתחיל, התצורה כוללת 4 חלקים:

  • קְבוּצָה - מזהה של ארגון, חברה או פרויקט
  • שֵׁם - מזהה תלות
  • גִרְסָה - אותה אנו רוצים לייבא
  • מסווג - שימושי להבחין בין תלות עם אותו דבר קְבוּצָה, שֵׁם, ו גִרְסָה

אנו יכולים להכריז על תלות בשני פורמטים. הפורמט החוזה מאפשר לנו להכריז על תלות כ- חוּט:

יישום 'org.springframework.boot: spring-boot-starter: 2.3.4.RELEASE'

במקום זאת, הפורמט המורחב מאפשר לנו לכתוב אותו כ- מַפָּה:

קבוצת יישום:'org.springframework.boot', שם: 'spring-boot-starter', גרסה: '2.3.4.RELEASE'

3.2. סוגי תצורה

יתר על כן, Gradle מספק סוגי תצורת תלות רבים:

  • api - משמש כדי להפוך את התלות למפורשת ולחשוף אותם בנתיב הכיתה. למשל, כאשר מיישמים ספרייה כדי להיות שקופה בפני צרכני הספרייה
  • יישום- נדרשים להרכיב את קוד מקור הייצור והם פנימיים בלבד. הם לא נחשפים מחוץ לחבילה
  • הידור בלבד- משמש כשצריך להכריז עליהם רק בזמן הידור, כגון הערות מקור בלבד או מעבדי הערות. הם לא מופיעים במהלך מסלול הריצה או מסלול המבחן
  • compileOnlyApi - משמש בעת הצורך בזמן הידור וכאשר הם צריכים להיות גלויים במסלול הכיתה עבור הצרכנים
  • זמן ריצה בלבד- משמש להצהרת תלות הנדרשת רק בזמן ריצה ואינן זמינות בזמן הידור
  • test יישום- נדרש להרכיב מבחנים
  • testCompileOnly- נדרש רק בזמן הידור הבדיקה
  • testRuntimeOnly- נדרש רק בזמן הבדיקה

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

4. סוגי תלות חיצונית

בואו ונעמיק בסוגי התלות החיצונית בה אנו נתקלים בתסריט build Gradle.

4.1. תלות במודול

בעיקרון, הדרך הנפוצה ביותר להכריז על תלות היא באמצעות הפניה למאגר. מאגר Gradle הוא אוסף של מודולים המאורגנים על ידי קְבוּצָה, שֵׁם, ו גִרְסָה.

למען האמת, Gradle מוריד את התלות מהמאגר שצוין בתוך ה- מאגר לַחסוֹם:

מאגרים {mavenCentral ()} תלות {יישום 'org.springframework.boot: spring-boot-starter: 2.3.4.RELEASE'}

4.2. תלות בקבצים

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

למטרה זו אנו יכולים להשתמש קבצים לכלול אוסף תלות:

תלות {קבצי runtimeOnly ('libs / lib1.jar', 'libs / lib2.jar')}

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

תלות {runtimeOnly fileTree ('libs') {כולל '* .jar'}}

4.3. תלות בפרויקט

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

נניח שאנחנו רוצים להצהיר שהפרויקט שלנו תלוי ב מְשׁוּתָף פּרוֹיֶקט:

 תלות {פרויקט יישום (': משותף')} 

4.4. תלות דרגה

במקרים מסוימים, כגון פיתוח משימה או תוסף, אנו יכולים להגדיר תלות השייכות לגרסת Gradle בה אנו משתמשים:

תלות {יישום gradleApi ()}

5. buildScript

כפי שראינו קודם, אנו יכולים להכריז על התלות החיצונית של קוד המקור והבדיקות שלנו בתוך תלות לַחסוֹם. באופן דומה, ה buildScript block מאפשר לנו להכריז על התלות של Build Gradle, כגון תוספי צד שלישי ושיעורי משימות. במיוחד, ללא buildScript אנו יכולים להשתמש רק בתכונות של Gradle מחוץ לקופסה.

להלן אנו מצהירים כי אנו רוצים להשתמש בתוסף Spring Boot על ידי הורדתו מ Maven Central:

buildscript {repositories {mavenCentral ()} תלות {classpath 'org.springframework.boot: spring-boot-gradle-plugin: 2.3.4.RELEASE'}} החל תוסף: 'org.springframework.boot'

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

מה שתואר לעיל קשור לגרסאות ישנות יותר של Gradle. במקום זאת, בגרסאות חדשות יותר, ניתן להשתמש בצורה תמציתית יותר:

תוספים {id 'org.springframework.boot' גרסה '2.3.4.RELEASE'}

6. מסקנה

במאמר זה בדקנו תלות ב- Gradle, כיצד להכריז עליהם וסוגי התצורה השונים.

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


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