Objectifs et paramètres du plug-in App Engine Maven

Après avoir ajouté au projet le plug-in App Engine Maven basé sur gcloud CLI, les objectifs Maven spécifiques à App Engine suivants sont disponibles :

Objectif Description
appengine:cloudSdkLogin Définit l’état global de gcloud CLI pour le compte.
appengine:deploy Prépare et déploie une application sur App Engine.
appengine:deployAll Prépare et déploie simultanément une application et tous ses fichiers de configuration yaml valides sur App Engine.
appengine:deployCron Prépare et déploie un fichier de configuration cron.yaml sur App Engine.
appengine:deployDispatch Prépare et déploie un fichier de configuration dispatch.yaml sur App Engine.
appengine:deployDos Prépare et déploie un fichier de configuration dos.yaml sur App Engine.
appengine:deployIndex Prépare et déploie un fichier de configuration index.yaml sur App Engine.
appengine:deployQueue Prépare et déploie un fichier de configuration queue.yaml sur App Engine.
appengine:help Affiche des informations d'aide sur le plugin App Engine Maven.
appengine:run Exécute le serveur de développement App Engine. Lorsque le serveur est en cours d'exécution, il vérifie en permanence si appengine-web.xml a changé. Le cas échéant, le serveur recharge l'application. Vous n'avez pas besoin d'arrêter et de redémarrer votre application en raison de modifications apportées à appengine-web.xml. Cet objectif est pris en charge pour les anciens services groupés.
appengine:stage Génère un répertoire d'application pour le déploiement.
appengine:start Démarre l'exécution asynchrone du serveur de développement App Engine, puis retourne à la ligne de commande. Lorsque cet objectif est exécuté, le comportement est identique à celui de l'objectif run, à la différence que Maven continue de traiter les objectifs et se ferme une fois que le serveur est opérationnel. Cet objectif est pris en charge pour les anciens services groupés.
appengine:stop Arrête un serveur de développement Web App Engine en cours d'exécution. Cet objectif est pris en charge pour les anciens services groupés.

Pour en savoir plus sur la configuration et l'utilisation de Maven, consultez la section Utiliser Maven.

Utiliser les paramètres

Chaque objectif est associé à des paramètres que vous pouvez spécifier dans le fichier pom.xml. Exemple :

<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>

Vous pouvez également définir des paramètres de configuration dans la ligne de commande, en suivant le format -D[USER_PROPERTY]=[PARAMETER_VALUE].

Par exemple, pour spécifier un répertoire dans lequel placer votre application :

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

Pour obtenir la liste des paramètres disponibles pour chaque objectif, consultez les sections suivantes.

appengine:deploy

Prépare et déploie une application sur App Engine.

Vous pouvez utiliser les paramètres suivants, dont certains correspondent à des options de ligne de commande gcloud app deploy ou gcloud app services :

Paramètre Description Propriétés utilisateur
appEngineDirectory Répertoire qui contient app.yaml et d'autres fichiers de configuration App Engine compatibles. La valeur par défaut est ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact Emplacement de l'archive JAR ou WAR à déployer. La valeur par défaut est ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
bucket Bucket Cloud Storage utilisé pour organiser les fichiers associés au déploiement. Si cet argument n'est pas spécifié, le bucket par défaut de l'application est utilisé. app.deploy.bucket
cloudSdkPath Paramètre facultatif permettant de configurer l'emplacement de Google Cloud CLI. La valeur par défaut est automatiquement détectée à partir du chemin d'accès ou de l'emplacement d'installation standard. cloudSdkPath
deployables Fichiers YAML pour les services ou les configurations que vous souhaitez déployer. Le fichier par défaut est app.yaml dans le répertoire de préproduction. Si ce n'est pas le cas, essayez de générer automatiquement les fichiers de configuration nécessaires (tels que app.yaml) dans le répertoire de préproduction. app.deploy.deployables
dockerDirectory Répertoire contenant le fichier Dockerfile et d'autres ressources Docker. La valeur par défaut est ${basedir}/src/main/docker/. app.stage.dockerDirectory
imageUrl À déployer avec une image Docker spécifique. ImageUrl doit être un nom Artifact Registry valide, par exemple docker.pkg.dev/foo, où foo est le nom de l'image. app.deploy.imageUrl
projectId Nom du projet Google Cloud à utiliser pour cet appel. Le nom par défaut est le projet actuellement sélectionné lors de l'initialisation de gcloud. app.deploy.projectId
promote Passe à la version déployée pour recevoir tout le trafic La valeur par défaut est True. app.deploy.promote
server Serveur App Engine auquel se connecter. En règle générale, il n'est pas nécessaire de modifier cette valeur. app.deploy.server
stagingDirectory Obligatoire. Répertoire dans lequel placer l'application. La valeur par défaut est ${project.build.directory}/appengine-staging. app.stage.stagingDirectory
stopPreviousVersion Arrête la version en cours d'exécution lors du déploiement d'une nouvelle version recevant tout le trafic. app.deploy.stopPreviousVersion
version Version de l'application qui sera créée ou remplacée par ce déploiement. Si vous ne spécifiez pas de version, une version sera générée pour vous. app.deploy.version

appengine:help

Affiche des informations d'aide sur le plugin App Engine Maven. Pour afficher les détails des paramètres, appelez :

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

Vous pouvez utiliser les paramètres suivants :

Paramètre Description Propriétés utilisateur
detail Si la valeur renvoyée est "true" : affiche toutes les propriétés définissables pour chaque objectif. La valeur par défaut est False. detail
goal Nom de l'objectif pour lequel afficher l'aide. S'il n'est pas spécifié, tous les objectifs sont affichés. goal
indentSize Nombre d'espaces par niveau d'indentation. Il doit s'agir d'un nombre positif. La valeur par défaut est 2. indentSize
lineLength Longueur maximale d'une ligne affichée. Il doit s'agir d'un nombre positif. La valeur par défaut est 80. lineLength

appengine:run

Exécute le serveur Web de développement App Engine. Lorsque le serveur est en cours d'exécution, il vérifie en permanence si appengine-web.xml a changé. Le cas échéant, le serveur recharge l'application. Cela signifie que vous n'avez pas besoin d'arrêter et de redémarrer votre application en raison des modifications apportées à appengine-web.xml.

Vous pouvez utiliser les paramètres suivants, dont certains correspondent aux indicateurs de ligne de commande du serveur de développement local :

Propriété Description Configuration du plug-in Configuration de la ligne de commande
automaticRestart Redémarrer les instances automatiquement lorsque les fichiers d'application Web (ressources ou fichiers de classes) sont modifiés. Pour configurer Maven afin de placer les fichiers de classe compilés dans le répertoire approprié de l'application Web, vous devez modifier le paramètre Maven outputDirectory :
<build>
  <outputDirectory>
    target/${project.artifactId}-${project.version}/WEB-INF/classes
  </outputDirectory>
  ...
<plugins>
...
devserver.automaticRestart app.devserver.automaticRestart
environment Carte des variables d'environnement à envoyer au serveur de développement local. Exemple :
<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Arguments supplémentaires à transmettre à la commande Java lors du lancement d'une instance de l'application. Peut être spécifié plusieurs fois. Exemple :
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Nom de l'hôte auquel les services d'application doivent être liés. La valeur par défaut est localhost. devserver.host app.devserver.host
port Port le plus bas auquel les services d'application doivent être liés. La valeur par défaut est 8080. devserver.port app.devserver.port
serverVersion Version du serveur à lancer. Les options sont "1" et "2-alpha". La valeur par défaut est "1". devserver.serverVersion app.devserver.serverVersion
services Obligatoire. Chemin(s) d'accès à un répertoire contenant un répertoire contenant WEB-INF/web.xml. La valeur par défaut est build/exploded-app. devserver.services app.devserver.services

appengine:stage

Génère un répertoire de compilation d'application pour le déploiement.

Vous pouvez utiliser les paramètres suivants :

Paramètre Description Propriétés utilisateur
appEngineDirectory Le répertoire qui contient app.yaml et d'autres fichiers de configuration App Engine compatibles. La valeur par défaut est ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact Emplacement de l'archive JAR ou WAR à déployer. La valeur par défaut est ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
cloudSdkPath Propriété facultative permettant de configurer l'emplacement de la CLI gcloud. cloudSdkPath
dockerDirectory Répertoire contenant le fichier Dockerfile et d'autres ressources Docker. La valeur par défaut est ${basedir}/src/main/docker/${basedir}/src/main/docker/. app.stage.dockerDirectory
stagingDirectory Obligatoire. Répertoire dans lequel placer l'application. La valeur par défaut est ${project.build.directory}/appengine-staging. app.stage.stagingDirectory

appengine:start

Démarre l'exécution asynchrone du serveur de développement Web App Engine, puis retourne à la ligne de commande. Lorsque cet objectif est exécuté, le comportement est identique à celui de l'objectif run, à la différence que Maven continue de traiter les objectifs et se ferme une fois que le serveur est opérationnel.

Vous pouvez utiliser les paramètres suivants :

Propriété Description Configuration du plug-in Configuration de la ligne de commande
environment Carte des variables d'environnement à envoyer au serveur de développement local. Exemple :
<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Arguments supplémentaires à transmettre à la commande Java lors du lancement d'une instance de l'application. Peut être spécifié plusieurs fois. Exemple :
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Nom de l'hôte auquel les services d'application doivent être liés. La valeur par défaut est localhost. devserver.host app.devserver.host
port Port le plus bas auquel les services d'application doivent être liés. La valeur par défaut est 8080. devserver.port app.devserver.port
serverVersion Version du serveur à lancer. Les options sont "1" et "2-alpha". La valeur par défaut est "1". devserver.serverVersion app.devserver.serverVersion
services Obligatoire. Chemin(s) d'accès à un répertoire contenant un répertoire contenant WEB-INF/web.xml. La valeur par défaut est build/exploded-app. devserver.services app.devserver.services
startSuccessTimeout Temps d'attente en secondes pour que le serveur d'applications de développement démarre en arrière-plan (lors de l'utilisation d'appengineStart). devserver.startSuccessTimeout app.devserver.startSuccessTimeout

appengine:stop

Arrête un serveur de développement Web App Engine en cours d'exécution.

Vous pouvez utiliser les paramètres suivants :

Paramètre Description Configuration du plug-in Configuration de la ligne de commande
host Nom de l'hôte auquel le serveur d'administration doit être lié. La valeur par défaut est localhost. devserver.adminHost app.devserver.adminHost
port Port auquel le serveur d'administration doit être lié. La valeur par défaut est 8000. devserver.adminPort app.devserver.adminPort
cloudSdkHome Propriété facultative permettant de configurer l'emplacement de la CLI gcloud. Si cette propriété n'est pas définie, le plug-in télécharge automatiquement la CLI gcloud. cloudSdkHome cloudSdkHome