Ziele und Parameter des Maven-Plug-ins für App Engine

Nachdem Sie dem Projekt das gcloud CLI-basierte App Engine-Maven-Plug-in hinzugefügt haben, sind folgende App Engine-spezifischen Maven-Ziele verfügbar:

Ziel Beschreibung
appengine:cloudSdkLogin Legt die globale gcloud CLI für das Konto fest.
appengine:deploy Löst Staging und Bereitstellung einer Anwendung in App Engine aus.
appengine:deployAll Stellt eine Anwendung mit allen gültigen yaml-Konfigurationen gleichzeitig in App Engine bereit.
appengine:deployCron Stellt eine cron.yaml-Konfigurationsdatei in App Engine bereit.
appengine:deployDispatch Stellt eine dispatch.yaml-Konfigurationsdatei in App Engine bereit.
appengine:deployDos Stellt eine dos.yaml-Konfigurationsdatei in App Engine bereit.
appengine:deployIndex Stellt eine index.yaml-Konfigurationsdatei in App Engine bereit.
appengine:deployQueue Stellt eine queue.yaml-Konfigurationsdatei in App Engine bereit
appengine:help Zeigt Hilfeinformationen zum App Engine-Maven-Plug-in an.
appengine:run Führt den App Engine-Entwicklungsserver aus. Bei Ausführung des Servers wird regelmäßig geprüft, ob sich appengine-web.xml geändert hat. Ist dies der Fall, wird die Anwendung vom Server neu geladen. Sie müssen Ihre Anwendung aufgrund von Änderungen an appengine-web.xml nicht beenden und neu starten. Dieses Ziel wird für die gebündelten Legacy-Dienste unterstützt.
appengine:stage Erzeugt ein Anwendungsverzeichnis für die Bereitstellung.
appengine:start Startet die asynchrone Ausführung des App Engine-Entwicklungsservers und kehrt dann zur Befehlszeile zurück. Die Ausführung dieses Ziels ist mit der Ausführung des Ziels run identisch, mit dem Unterschied, dass Maven weiter Ziele verarbeitet und beendet wird, wenn der Server ausgeführt wird. Dieses Ziel wird für die gebündelten Legacy-Dienste unterstützt.
appengine:stop Beendet einen ausgeführten App Engine-Webentwicklungsserver. Dieses Ziel wird für die gebündelten Legacy-Dienste unterstützt.

Weitere Informationen zum Einrichten und Anwenden von Maven finden Sie unter Maven verwenden.

Parameter verwenden

Jedem Ziel sind Parameter zugewiesen, die Sie in der Datei pom.xml angeben können. Beispiel:

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

Sie können Konfigurationsparameter auch in der Befehlszeile gemäß dem Muster -D[USER_PROPERTY]=[PARAMETER_VALUE] definieren.

So geben Sie beispielsweise ein Verzeichnis an, in dem Ihre Anwendung getestet werden soll:

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

In den nachstehenden Abschnitten sind die Parameter aufgeführt, die für jedes Ziel zur Verfügung stehen.

appengine:deploy

Löst Staging und Bereitstellung einer Anwendung in App Engine aus.

Sie können die folgenden Parameter verwenden, von denen einige den Befehlszeilen-Flags für gcloud app deploy oder den Befehlszeilen-Flags für gcloud app services entsprechen:

Parameter Beschreibung Nutzereigenschaft
appEngineDirectory Das Verzeichnis, das app.yaml und andere unterstützte App Engine-Konfigurationsdateien enthält. Standardwert ist ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact Der Speicherort des bereitzustellenden JAR- oder WAR-Archivs. Standardwert ist ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
bucket Der Cloud Storage-Bucket, der für das Staging von Dateien verwendet wird, die der Bereitstellung zugeordnet sind. Wenn dieses Argument nicht angegeben ist, wird der Standard-Bucket der Anwendung verwendet. app.deploy.bucket
cloudSdkPath Optionaler Parameter zum Konfigurieren des Speicherorts des Google Cloud CLI. Standardmäßig erfolgt eine automatische Erkennung anhand der PATH-Variable oder des Standardinstallationsorts. cloudSdkPath
deployables Die YAML-Dateien für die Dienste oder Konfigurationen, die Sie bereitstellen möchten. Der Standardwert ist die app.yaml-Datei im Staging-Verzeichnis. Wenn sie nicht gefunden wird, wird versucht, erforderliche Konfigurationsdateien wie app.yaml automatisch im Staging-Verzeichnis zu erzeugen. app.deploy.deployables
dockerDirectory Das Verzeichnis mit dem Dockerfile und anderen Docker-Ressourcen. Standardwert ist ${basedir}/src/main/docker/. app.stage.dockerDirectory
imageUrl Bereitstellen mit einem bestimmten Docker-Image. ImageUrl muss ein gültiger Artifact Registry-Name sein, z. B. docker.pkg.dev/foo, wobei foo der Name des Images ist. app.deploy.imageUrl
projectId Der Google Cloud-Projektname für diesen Aufruf. Standardeinstellung ist das aktuelle Projekt, das beim Initialisieren von gcloud ausgewählt wurde. app.deploy.projectId
promote Bereitgestellte Version für den gesamten Traffic hochstufen. Standardwert ist True. app.deploy.promote
server Der App Engine-Server, mit dem eine Verbindung hergestellt werden soll. Dieser Wert muss in der Regel nicht geändert werden. app.deploy.server
stagingDirectory Erforderlich. Das Verzeichnis für das Staging der Anwendung. Standardwert ist ${project.build.directory}/appengine-staging. app.stage.stagingDirectory
stopPreviousVersion Beenden Sie die zuvor ausgeführte Version, wenn Sie eine neue Version bereitstellen, die den gesamten Traffic empfängt. app.deploy.stopPreviousVersion
version Die Version der Anwendung, die durch diese Bereitstellung erstellt oder ersetzt wird. Wenn Sie keine Version angeben, wird eine für Sie erzeugt. app.deploy.version

appengine:help

Zeigt Hilfeinformationen zum Maven-Plug-in für App Engine an. Um die Parameterdetails zu sehen, rufen Sie Folgendes auf:

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

Sie können die folgenden Parameter verwenden:

Parameter Beschreibung Nutzereigenschaft
detail Wenn der Wert "true" ist, werden alle festlegbaren Properties für jedes Ziel angezeigt. Standardwert ist False. detail
goal Der Name des Ziels, für das Hilfe angezeigt werden soll. Wenn nichts angegeben ist, werden alle Ziele angezeigt. goal
indentSize Die Anzahl der Leerzeichen pro Einrückungsstufe. Muss eine positive Zahl sein. Standardwert ist 2. indentSize
lineLength Die maximale Länge einer Anzeigezeile. Muss eine positive Zahl sein. Standardwert ist 80. lineLength

appengine:run

Führt den App Engine-Entwicklungsserver aus. Bei Ausführung des Servers wird regelmäßig geprüft, ob sich appengine-web.xml geändert hat. Ist dies der Fall, wird die Anwendung vom Server neu geladen. Daher müssen Sie Ihre Anwendung aufgrund von Änderungen an appengine-web.xml nicht beenden oder neu starten.

Sie können dafür die folgenden Parameter verwenden, wobei einige den Befehlszeilen-Flags des lokalen Entwicklungsservers entsprechen.

Attribut Beschreibung Plug-in-Konfiguration Befehlszeilenkonfiguration
automaticRestart Instanzen automatisch neu starten, wenn Webanwendungsdateien (Ressourcen- oder Klassendateien) geändert werden. Sie müssen die Maven-Einstellung für outputDirectory ändern, um Maven so zu konfigurieren, dass die kompilierten Klassendateien im richtigen Verzeichnis der Webanwendung abgelegt werden:
<build>
  <outputDirectory>
    target/${project.artifactId}-${project.version}/WEB-INF/classes
  </outputDirectory>
  ...
<plugins>
...
devserver.automaticRestart app.devserver.automaticRestart
environment Eine Zuordnung von Umgebungsvariablen, die an den lokalen Entwicklungsserver gesendet werden. Beispiel:
<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Zusätzliche Argumente, die beim Starten einer Instanz der Anwendung an den Java-Befehl übergeben werden. Kann mehrmals angegeben werden. Beispiel:
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Hostname, an den Anwendungsdienste gebunden werden sollen. Standardwert ist localhost. devserver.host app.devserver.host
port Niedrigster Port, an den Anwendungsdienste gebunden werden sollen. Der Standardwert ist 8080. devserver.port app.devserver.port
serverVersion Serverversion zum Starten, die Optionen sind „1“ und „2-alpha“. Standardwert ist „1“. devserver.serverVersion app.devserver.serverVersion
services Erforderlich. Pfad(e) zu einem Verzeichnis, das ein Verzeichnis WEB-INF/web.xml enthält. Der Standardwert ist build/exploded-app. devserver.services app.devserver.services

appengine:stage

Erzeugt ein Anwendungs-Build-Verzeichnis für die Bereitstellung

Sie können die folgenden Parameter verwenden:

Parameter Beschreibung Nutzereigenschaft
appEngineDirectory Das Verzeichnis, das app.yaml und andere unterstützte App Engine-Konfigurationsdateien enthält. Der Standardwert ist ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact Der Speicherort des bereitzustellenden JAR- oder WAR-Archivs. Standardwert ist ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
cloudSdkPath Optionaler Parameter zum Konfigurieren des Speicherorts der gcloud CLI. cloudSdkPath
dockerDirectory Das Verzeichnis mit dem Dockerfile und anderen Docker-Ressourcen. Standardwert ist ${basedir}/src/main/docker/${basedir}/src/main/docker/. app.stage.dockerDirectory
stagingDirectory Erforderlich. Das Verzeichnis für das Staging der Anwendung. Standardwert ist ${project.build.directory}/appengine-staging. app.stage.stagingDirectory

appengine:start

Startet die asynchrone Ausführung des App Engine-Entwicklungswebservers und kehrt dann zur Befehlszeile zurück. Die Ausführung dieses Ziels ist mit der Ausführung des Ziels run identisch, mit dem Unterschied, dass Maven weiter Ziele verarbeitet und beendet wird, wenn der Server ausgeführt wird.

Sie können folgende Parameter verwenden:

Attribut Beschreibung Plug-in-Konfiguration Befehlszeilenkonfiguration
environment Eine Zuordnung von Umgebungsvariablen, die an den lokalen Entwicklungsserver gesendet werden. Beispiel:
<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Zusätzliche Argumente, die beim Starten einer Instanz der Anwendung an den Java-Befehl übergeben werden. Kann mehrmals angegeben werden. Beispiel:
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Hostname, an den Anwendungsdienste gebunden werden sollen. Standardwert ist localhost. devserver.host app.devserver.host
port Niedrigster Port, an den Anwendungsdienste gebunden werden sollen. Der Standardwert ist 8080. devserver.port app.devserver.port
serverVersion Serverversion zum Starten, die Optionen sind „1“ und „2-alpha“. Standardwert ist „1“. devserver.serverVersion app.devserver.serverVersion
services Erforderlich. Pfad(e) zu einem Verzeichnis, das ein Verzeichnis WEB-INF/web.xml enthält. Der Standardwert ist build/exploded-app. devserver.services app.devserver.services
startSuccessTimeout Zeit in Sekunden, die gewartet wird, bis der Entwicklungsanwendungsserver im Hintergrund gestartet wird (bei Verwendung von appengineStart). devserver.startSuccessTimeout app.devserver.startSuccessTimeout

appengine:stop

Beendet einen ausgeführten App Engine-Webentwicklungsserver.

Es können folgende Parameter verwendet werden:

Parameter Beschreibung Plug-in-Konfiguration Befehlszeilenkonfiguration
host Hostname, an den der Verwaltungsserver gebunden werden soll. Standardwert ist localhost. devserver.adminHost app.devserver.adminHost
port Port, an den der Verwaltungsserver gebunden werden soll. Standardwert ist 8000. devserver.adminPort app.devserver.adminPort
cloudSdkHome Optionaler Parameter zum Konfigurieren des Speicherorts der gcloud CLI. Wenn dieses Attribut nicht angegeben ist, lädt das Plug-in die gcloud CLI automatisch herunter. cloudSdkHome cloudSdkHome