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 או גרסה חדשה יותר:
אם עדיין לא עשיתם זאת, אתם צריכים לפעול לפי השלבים שמופיעים כאן כדי להוריד את ה-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 של הפרויקט:
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.56.v20240826</version>
</plugin>
</plugins>שימוש ב-Jetty Maven plugin כדי לבדוק את האפליקציה באופן מקומי
במהלך שלב הפיתוח, אפשר להריץ ולבדוק את האפליקציה בכל שלב בשרת הפיתוח באמצעות הפעלת התוסף Jetty Maven.
כדי להריץ את האפליקציה בשרת הפיתוח:
אם עדיין לא עשיתם זאת, אתם צריכים ליצור את האפליקציה:
mvn packageעוברים לספרייה ברמה העליונה של הפרויקט (למשל,
myapp) ומריצים את האפליקציה באמצעות הפעלת Maven:mvn jetty:runמחכים שהשרת יופעל ומשתמשים בדפדפן כדי להיכנס לכתובת
http://localhost:8080/כדי לגשת לאפליקציה.מכבים את האפליקציה ואת שרת הפיתוח על ידי הקשה על Control+C.
פיתוח ופריסה של האפליקציה
אחרי שמוסיפים את הפלאגין 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 Goals and Parameters.