יעדים ופרמטרים של 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