בדף הזה מוסבר איך להשתמש ב-Cloud Build כדי ליצור ולבדוק אפליקציות מבוססות Java, לאחסן ארטיפקטים שנוצרו במאגר Maven ב-Artifact Registry וליצור מידע על אישור המקור של Build.
לפני שמתחילים
- להכיר את התהליך של יצירת אפליקציות מבוססות Java.
- היכרות עם Maven
- מוודאים שיש לכם פרויקט Java מוכן.
- להכיר את האופן שבו כותבים קובץ תצורת build של Cloud Build.
- יש לכם מאגר Maven ב-Artifact Registry. אם אין לכם מאגר, יוצרים מאגר חדש.
- כדי להריץ את הפקודות
gcloudשבדף הזה, צריך להתקין את Google Cloud CLI.
שימוש בתמונה maven
אתם יכולים להגדיר את Cloud Build ליצירת אפליקציות Java באמצעות קובץ האימג' maven מ-Docker Hub.
כדי להריץ את המשימות בתמונה maven, מוסיפים שלב להגדרות ה-build עם השדות הבאים:
-
name: מגדירים את הערך של השדה הזה ל-mavenאו ל-maven:<tag>, כאשר התג מייצג את הגרסה. אם לא מציינים את תג האימג', Cloud Build משתמש באימג'latestכברירת מחדל. -
entrypoint: הגדרת השדה הזה מבטלת את נקודת הכניסה שמוגדרת כברירת מחדל לתמונה שמפנים אליה בשדהname. מגדירים את הערך של השדה הזה ל-mvnכדי להפעיל אתmvnכנקודת הכניסה של שלב ה-build ולהריץ פקודותmvn. -
args: השדהargsשל שלב בנייה מקבל רשימה של ארגומנטים ומעביר אותם לתמונה שאליה יש הפניה בשדהname.
בשלב ה-build הבא מצוין entrypoint לתמונה maven שתויגה כ-3.3-jdk-8, והוא מדפיס את הגרסה של כלי ה-build:
steps:
- name: maven:3.3-jdk-8
entrypoint: mvn
args: ['--version']
הגדרת בנייה של Java
בתיקיית השורש של הפרויקט, יוצרים קובץ הגדרות build בשם
cloudbuild.yaml.הרצת בדיקות:
mavenמספקתmaven test, שמוריד תלות, בונה את האפליקציות ומריץ את כל הבדיקות שצוינו בקוד המקור. השדהargsשל שלב בנייה מקבל רשימה של ארגומנטים ומעביר אותם לתמונה שאליה מתייחס השדהname.בקובץ הגדרות ה-build, מוסיפים את
testלשדהargsכדי להפעיל אתtestבתוךmaven:steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['test']חבילת אפליקציה: כדי לארוז את האפליקציה בקובץ JAR לתמונה
maven, מציינים את הפקודהpackageבשדהargs. הפקודהpackageיוצרת קובץ JAR ב-/workspace/target/.שלב הבנייה הבא יוצר חבילה של אפליקציית Java:
steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['package','-Dmaven.test.skip=true']העלאה אל Artifact Registry:
בקובץ התצורה של ה-build, משתמשים בשדה
mavenArtifactsכדי לציין את הנתיב של האפליקציה ואת מאגר Maven ב-Artifact Registry:artifacts: mavenArtifacts: - repository: 'https://location-maven.pkg.dev/project-id/repository-name' path: 'app-path' artifactId: 'build-artifact' groupId: 'group-id' version: 'version'מחליפים את הערכים הבאים:
- location: המיקום של המאגר ב-Artifact Registry.
- project-id: מזהה Google Cloud הפרויקט שמכיל את מאגר Artifact Registry.
- repository-name: השם של מאגר Maven ב-Artifact Registry.
- app-path: הנתיב לאפליקציה הארוזה.
- build-artifact: השם של קובץ החבילה שנוצר משלב הבנייה.
- group-id: מזהה באופן ייחודי את הפרויקט בכל הפרויקטים של Maven, בפורמט
com.mycompany.app. מידע נוסף זמין במדריך Maven למוסכמות שמות. - version: מספר הגרסה של האפליקציה, בפורמט של מספרים ונקודות כמו
1.0.1.
אופציונלי: הפעלת יצירת שיוך מקור
Cloud Build יכול ליצור מטא נתונים של מקורות build שניתנים לאימות של Supply chain Levels for Software Artifacts (SLSA) כדי לעזור לכם לאבטח את צינור השילוב הרציף שלכם.
כדי להפעיל את יצירת המקור, מוסיפים את השורה
requestedVerifyOption: VERIFIEDלקטעoptionsבקובץ ההגדרות.מתחילים את ה-build: באופן ידני או באמצעות טריגרים של build.
אחרי שהבנייה מסתיימת, אפשר לראות את פרטי המאגר ב-Artifact Registry.
אפשר גם לראות את המטא-נתונים של מקור ה-build ולאמת את המקור.
המאמרים הבאים
- איך צופים בתוצאות של בניית האפליקציה
- איך מאבטחים את הגרסאות
- איך מבצעים פריסות כחולות/ירוקות ב-Compute Engine
- איך יוצרים אפליקציות Java ומכניסים אותן לקונטיינרים
- איך פורסים אפליקציה ב-Cloud Run
- איך פורסים אפליקציה ב-GKE
- איך פותרים בעיות שקשורות לבנייה