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

מפעיל את שרת פיתוח להצגה באינטרנט (development web server) של App Engine. כשהשרת פועל, הוא בודק כל הזמן אם appengine-web.xml השתנה. אם כן, השרת טוען מחדש את האפליקציה. המשמעות היא שלא צריך לעצור ולהפעיל מחדש את האפליקציה בגלל שינויים ב-appengine-web.xml.

אפשר להשתמש בפרמטרים הבאים, שחלקם תואמים לפקודות של שרת פיתוח מקומי:

מאפיין (property) תיאור הגדרת הפלאגין הגדרה של שורת פקודה
automaticRestart הפעלה מחדש של מופעים באופן אוטומטי כשמשנים קבצים של אפליקציות אינטרנט (משאבים או קבצים של מחלקות). כדי להגדיר את Maven כך שיציב את קובצי המחלקה שעברו קומפילציה בספרייה הנכונה של אפליקציית האינטרנט, צריך לשנות את ההגדרה outputDirectory של Maven:
<build>
  <outputDirectory>
    target/${project.artifactId}-${project.version}/WEB-INF/classes
  </outputDirectory>
  ...
<plugins>
...
devserver.automaticRestart app.devserver.automaticRestart
environment מפה של משתני סביבה לשליחה לשרת הפיתוח המקומי. דוגמה:
<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags ארגומנטים נוספים להעברה לפקודת java כשמפעילים מופע של האפליקציה. אפשר לציין יותר מפעם אחת. דוגמה:
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host שם המארח שאליו שירותי האפליקציה צריכים להיות מקושרים. ברירת המחדל היא localhost. devserver.host app.devserver.host
port היציאה הנמוכה ביותר שאליה שירותי האפליקציות צריכים להיקשר. ברירת המחדל היא 8080. devserver.port app.devserver.port
serverVersion גרסת השרת להפעלה, האפשרויות הן '1' ו-'2-alpha'. ברירת המחדל היא '1'. devserver.serverVersion app.devserver.serverVersion
services חובה. נתיבים לספרייה שמכילה ספרייה שמכילה את הקובץ WEB-INF/web.xml. ברירת המחדל היא build/exploded-app. devserver.services app.devserver.services

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

appengine:start

הפקודה מפעילה את שרת פיתוח להצגה באינטרנט (development web server) של App Engine באופן אסינכרוני ואז חוזרת לשורת הפקודה. כשהיעד הזה פועל, ההתנהגות שלו זהה ליעד run, אלא ש-Maven ממשיך לעבד את היעדים ויוצא אחרי שהשרת מופעל.

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

מאפיין (property) תיאור הגדרת הפלאגין הגדרה של שורת פקודה
environment מפה של משתני סביבה לשליחה לשרת הפיתוח המקומי. דוגמה:
<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags ארגומנטים נוספים להעברה לפקודת java כשמפעילים מופע של האפליקציה. אפשר לציין יותר מפעם אחת. דוגמה:
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host שם המארח שאליו שירותי האפליקציה צריכים להיות מקושרים. ברירת המחדל היא localhost. devserver.host app.devserver.host
port היציאה הנמוכה ביותר שאליה שירותי האפליקציות צריכים להיקשר. ברירת המחדל היא 8080. devserver.port app.devserver.port
serverVersion גרסת השרת להפעלה, האפשרויות הן '1' ו-'2-alpha'. ברירת המחדל היא '1'. devserver.serverVersion app.devserver.serverVersion
services חובה. נתיבים לספרייה שמכילה ספרייה שמכילה את הקובץ WEB-INF/web.xml. ברירת המחדל היא build/exploded-app. devserver.services app.devserver.services
startSuccessTimeout משך הזמן בשניות להמתנה להפעלת שרת אפליקציית הפיתוח ברקע (כשמשתמשים ב-appengineStart). devserver.startSuccessTimeout app.devserver.startSuccessTimeout

appengine:stop

הפקודה מפסיקה שרת פיתוח אינטרנט של App Engine שפועל.

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

פרמטר תיאור הגדרת הפלאגין הגדרה של שורת פקודה
host שם המארח שאליו שרת הניהול צריך להיות קשור. ברירת המחדל היא localhost devserver.adminHost app.devserver.adminHost
port היציאה שאליה שרת האדמין צריך להיקשר. ברירת המחדל היא 8000. devserver.adminPort app.devserver.adminPort
cloudSdkHome פרמטר אופציונלי להגדרת המיקום של ה-CLI של gcloud. אם לא מציינים את המאפיין הזה, התוסף מוריד באופן אוטומטי את ה-CLI של gcloud. cloudSdkHome cloudSdkHome