Apache Maven הוא כלי לאוטומציה של בנייה ב-Java.
App Engine מספק פלאגין Maven שאפשר להשתמש בו כדי ליצור ולפרוס את האפליקציה ב-App Engine. הפלאגין לא תומך בפרויקטים של Enterprise Application Archive (EAR).
לפני שמתחילים
כדי לבדוק אם Maven מותקן ואיזו גרסה מותקנת, מריצים את הפקודה הבאה:
mvn -vאם Maven מותקן, תוצג מחרוזת ארוכה של מידע שמתחילה ב-
Apache Mavenוממשיכה במספר גרסה כמו3.9.1.אם לא מותקנת אצלכם גרסה Maven 3.9.1 או גרסה חדשה יותר:
מנהלי חבילות Linux שמוגדרים כברירת מחדל, כמו
aptאוapt-getב-Ubuntu וב-Debian, מספקים גרסאות ישנות יותר של Maven, ויכול להיות שהם לא כוללים את Maven 3.9.1 או גרסאות חדשות יותר. כדי להתקין גרסה נתמכת ב-Linux, מורידים את הארכיון הבינארי ישירות מהאתר של Apache Maven ופועלים לפי הוראות ההתקנה.אם עדיין לא עשיתם זאת, פועלים לפי השלבים שמופיעים כאן כדי להוריד את ה-CLI של gcloud, ליצור את פרויקט Google Cloud ולאתחל את אפליקציית App Engine.
מתקינים את רכיב
app-engine-javaשל ה-CLI של gcloud:gcloud components install app-engine-java
הוספת App Engine Maven plugin
כדי להשתמש בפלאגין App Engine Maven, מוסיפים את השורות הבאות לקטע plugins בקובץ pom.xml של הפרויקט:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.8.7</version>
</plugin>פיתוח ופריסה של האפליקציה
אחרי שמוסיפים את הפלאגין App Engine Maven לקובץ pom.xml של הפרויקט, אפשר להשתמש בפקודה הבאה כדי ליצור את האפליקציה ולפרוס אותה:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
מחליפים את PROJECT_ID במזהה הפרויקט. Google Cloud אם קובץ pom.xml כבר מציין את מזהה הפרויקט, אין צורך לכלול את המאפיין -Dapp.deploy.projectId בפקודה שמריצים.
המטרה package יוצרת את האפליקציה ואורזת אותה, והappengine:deploy מטרה מבצעת את הפעולות הבאות:
המערכת יוצרת מזהה גרסה ייחודי לגרסה החדשה של האפליקציה.
הגרסה החדשה נפרסת ב-App Engine.
כל התנועה מנותבת לגרסה החדשה.
שינוי ברירות המחדל של הפריסה
אפשר לשנות את התנהגות הפריסה שמוגדרת כברירת מחדל באמצעות העברת פרמטרים בפקודה appengine:deploy. לדוגמה, הפקודה הבאה פורסת את השירות שמוגדר בקובץ pom.xml לפרויקט Google Cloud ספציפי, מקצה לשירות מזהה גרסה מותאם אישית ומשביתה את הניתוב האוטומטי של התנועה לגרסה החדשה:
mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.version=VERSION_ID -Dapp.deploy.promote=False
אפשר גם להשתמש בפקודה appengine:deploy כדי לפרוס קובצי תצורה, כמו cron.yaml, dispatch.yaml ו-index.yaml.
מידע נוסף זמין בappengine:deploy
מאמר הזה.
המאמרים הבאים
- בודקים את הדוגמה של פלאגין Maven של App Engine JDK 21.
- אפשר לעיין בקוד של הפלאגין ולדווח על בעיות ב-GitHub.
- כאן אפשר לקרוא איך מציינים פרמטרים למשימות ב-App Engine Maven.