יעדים ופרמטרים של Maven App Engine Plugin

אחרי הוספת הפלאגין App Engine Maven שמבוסס על CLI של gcloud לפרויקט, מטרות Maven הבאות שספציפיות ל-App Engine זמינות:

מטרה תיאור
appengine:cloudSdkLogin מגדירה את המצב הגלובלי של ה-CLI של gcloud עבור חשבון.
appengine:deploy מבצעת staging ופריסה של אפליקציה ב-App Engine.
appengine:deployAll מכין לפריסה ופורס אפליקציה עם כל הגדרות ה-YAML התקינות שלה בו-זמנית ב-App Engine.
appengine:deployCron מעבירים קובץ הגדרות cron.yaml לסטייג' ופורסים אותו ב-App Engine.
appengine:deployDispatch מעבירים קובץ הגדרות dispatch.yaml לסטייג' ופורסים אותו ב-App Engine.
appengine:deployDos מעבירים קובץ הגדרות dos.yaml לסטייג' ופורסים אותו ב-App Engine.
appengine:deployIndex מעבירים קובץ הגדרה index.yaml ל-App Engine ומבצעים פריסה.
appengine:deployQueue מעבירים קובץ הגדרות queue.yaml לסטייג' ופורסים אותו ב-App Engine.
appengine:help מציגה מידע עזרה על App Engine Maven Plugin.
appengine:run מפעיל את שרת הפיתוח של App Engine. כשהשרת פועל, הוא בודק כל הזמן אם appengine-web.xml השתנה. אם כן, השרת טוען מחדש את האפליקציה. אתם לא צריכים להפסיק ולהפעיל מחדש את האפליקציה בגלל שינויים ב-appengine-web.xml. היעד הזה נתמך בשירותים מדור קודם.
appengine:stage יוצר ספריית אפליקציות לפריסה.
appengine:start הפקודה מפעילה את שרת הפיתוח של App Engine באופן אסינכרוני, ואז חוזרת לשורת הפקודה. כשמפעילים את היעד הזה, ההתנהגות זהה לזו של היעד run, אלא ש-Maven ממשיך לעבד יעדים ויוצא אחרי שהשרת מופעל ופועל. היעד הזה נתמך בשירותים מדור קודם.
appengine:stop הפקודה מפסיקה שרת פיתוח אינטרנט של App Engine שפועל. היעד הזה נתמך בשירותים מדור קודם.

מידע נוסף על הגדרה ושימוש ב-Maven זמין במאמר שימוש ב-Maven.

שימוש בפרמטרים

לכל יעד יש פרמטרים משויכים שאפשר לציין בקובץ pom.xml. לדוגמה:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.8.1</version>
     <configuration>
       <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
       <cloudSdkHome>/usr/foo/path/to/cloudsdk</cloudSdkHome>
     </configuration>
  </plugin>
</plugins>

אפשר גם להגדיר פרמטרים של הגדרה בשורת הפקודה, לפי התבנית -D[USER_PROPERTY]=[PARAMETER_VALUE].

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

mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]

בקטעים הבאים מפורטת רשימה של הפרמטרים שזמינים לכל יעד.

appengine:deploy

מבצעת staging ופריסה של אפליקציה ב-App Engine.

אפשר להשתמש בפרמטרים הבאים, שחלקם תואמים לדגלים של שורת הפקודה gcloud app deploy או לדגלים של שורת הפקודה gcloud app services:

פרמטר תיאור מאפיין משתמש
appEngineDirectory הספרייה שמכילה את app.yaml וקבצים אחרים של הגדרות App Engine שנתמכים. ברירת המחדל היא ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact המיקום של ארכיון ה-JAR או ה-WAR לפריסה. ברירת המחדל היא ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
bucket קטגוריית Cloud Storage שמשמשת להעברת קבצים שמשויכים לפריסה. אם לא מציינים את הארגומנט הזה, המערכת משתמשת בדלי ברירת המחדל של האפליקציה. app.deploy.bucket
cloudSdkPath פרמטר אופציונלי להגדרת המיקום של Google Cloud CLI. ברירת המחדל היא גילוי אוטומטי מנתיב או ממיקום התקנה רגיל. cloudSdkPath
deployables קובצי ה-YAML של השירותים או ההגדרות שרוצים לפרוס. ברירת המחדל היא הקובץ app.yaml בספריית ההכנה. אם לא נמצא קובץ כזה, המערכת תנסה ליצור באופן אוטומטי קובצי הגדרות נדרשים (כמו app.yaml) בספריית ההכנה. app.deploy.deployables
dockerDirectory הספרייה שמכילה את קובץ ה-Dockerfile ומשאבי Docker אחרים. ברירת המחדל היא ${basedir}/src/main/docker/. app.stage.dockerDirectory
imageUrl פריסה באמצעות תמונת Docker ספציפית. הערך של ImageUrl חייב להיות שם תקין ב-Artifact Registry, לדוגמה, docker.pkg.dev/foo, כאשר foo הוא שם התמונה. app.deploy.imageUrl
projectId Google Cloud שם הפרויקט שבו רוצים להשתמש בהפעלה הזו. ברירת המחדל היא הפרויקט הנוכחי שנבחר כשמפעילים את gcloud. app.deploy.projectId
promote מקדמים את הגרסה שנפרסה כדי לקבל את כל התנועה. ברירת המחדל היא True. app.deploy.promote
server שרת App Engine שאליו מתחברים. בדרך כלל אין צורך לשנות את הערך הזה. app.deploy.server
stagingDirectory חובה. הספרייה שאליה האפליקציה תועבר. ברירת המחדל היא ${project.build.directory}/appengine-staging. app.stage.stagingDirectory
stopPreviousVersion צריך להפסיק את הגרסה שהופעלה קודם כשפורסים גרסה חדשה שמקבלת את כל התנועה. app.deploy.stopPreviousVersion
version הגרסה של האפליקציה שתיצור או תחליף את הפריסה הזו. אם לא מציינים גרסה, המערכת תיצור גרסה בשבילכם. app.deploy.version

appengine:help

מציגה מידע עזרה על App Engine Maven Plugin. כדי להציג פרטים על פרמטר, קוראים לפונקציה:

mvn appengine:help -Ddetail=true -Dgoal=[GOAL_NAME]

אפשר להשתמש בפרמטרים הבאים:

פרמטר תיאור מאפיין משתמש
detail אם הערך הוא true, כל הנכסים שניתנים להגדרה מוצגים לכל יעד. ברירת המחדל היא False. detail
goal שם המטרה שעבורה רוצים להציג עזרה. אם לא מציינים שם, כל המטרות יוצגו. goal
indentSize מספר הרווחים לכל רמת הזחה. הערך צריך להיות מספר חיובי. ברירת המחדל היא 2. indentSize
lineLength האורך המקסימלי של שורת תצוגה. הערך צריך להיות מספר חיובי. ברירת המחדל היא 80. lineLength

appengine:stage

יוצרת ספריית build של האפליקציה לפריסה.

אפשר להשתמש בפרמטרים הבאים:

פרמטר תיאור מאפיין משתמש
appEngineDirectory הספרייה שמכילה את app.yaml וקבצים אחרים של הגדרות App Engine שנתמכים. ברירת המחדל היא ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact המיקום של ארכיון ה-JAR או ה-WAR שרוצים לפרוס. ברירת המחדל היא ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
cloudSdkPath פרמטר אופציונלי להגדרת המיקום של ה-CLI של gcloud. cloudSdkPath
dockerDirectory הספרייה שמכילה את קובץ ה-Dockerfile ומשאבי Docker אחרים. ברירת המחדל היא ${basedir}/src/main/docker/${basedir}/src/main/docker/. app.stage.dockerDirectory
stagingDirectory חובה. הספרייה שאליה האפליקציה תועבר. ברירת המחדל היא ${project.build.directory}/appengine-staging. app.stage.stagingDirectory