Objectifs et paramètres du plug-in App Engine Maven (basé sur le SDK Cloud)

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

Objectif Description
appengine:cloudSdkLogin Définit l’état global du SDK Cloud 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 plug-in 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 le fichier appengine-web.xml a été modifié. Le cas échéant, le serveur recharge l'application. Vous n'avez pas besoin d'arrêter ni de redémarrer votre application en raison de modifications apportées au fichier appengine-web.xml.
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.
appengine:stop Arrête un serveur de développement Web App Engine en cours d'exécution.

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

Les utilisateurs de la version du plug-in Maven basée sur le SDK App Engine pour Java peuvent trouver un mappage des objectifs du plug-in précédents avec les commandes gcloud dans la documentation de référence correspondante.

Paramètres des objectifs

Chaque objectif est associé à des paramètres que vous pouvez utiliser. Vous pouvez spécifier ces derniers dans le fichier pom.xml ou dans la ligne de commande.

Pour configurer les paramètres dans le fichier pom.xml, ajoutez leur nom dans la section <configuration>.

L'exemple suivant divise les fichiers JAR, arrête la version précédemment en cours d'exécution et spécifie le chemin d'accès au SDK Cloud :

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

Une autre possibilité pour configurer les paramètres dans la ligne de commande consiste à suivre le format -D[USER_PROPERTY]=[PARAMETER_VALUE].

L'exemple suivant spécifie 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.

Si vous souhaitez ignorer toutes les exécutions appengine:goal, définissez le paramètre skip sur "true".

appengine:deploy

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

Vous pouvez utiliser les paramètres suivants. Certains correspondent aux indicateurs de ligne de commande gcloud app deploy :

Paramètre Description Configuration du plug-in Configuration de la ligne de commande
appEngineDirectory Emplacement des fichiers de configuration .yaml (Cron, index, etc.) à partir desquels les déploiements spécifiques à la configuration (appengineDeployCron, etc.) seront effectués. Pour les applications standards, les fichiers de configuration .xml sont convertis en .yaml lors de la préproduction et placés dans target/appengine-staging/WEB-INF/appengine-generated. deploy.appEngineDirectory app.deploy.appEngineDirectory
bucket Bucket Google Cloud Storage permettant de préparer 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é. deploy.bucket app.deploy.bucket
cloudSdkHome Paramètre facultatif permettant de configurer l'emplacement du SDK Cloud. Si cette propriété n'est pas définie, le plug-in télécharge automatiquement le SDK Cloud. cloudSdkHome cloudSdkHome
cloudSdkVersion Paramètre facultatif permettant de spécifier la version souhaitée du SDK Cloud. cloudSdkVersion cloudSdkVersion
compileEncoding Encodage des caractères à utiliser lors de la compilation des fichiers JSP. Ne s'applique qu'à l'environnement standard App Engine. stage.compileEncoding app.stage.compileEncoding
deleteJsps Supprime les fichiers JSP sources après la compilation. Ne s'applique qu'à l'environnement standard App Engine. stage.deleteJsps app.stage.deleteJsps
disableJarJsps Désactive l'ajout des classes générées à partir des fichiers JSP. Ne s'applique qu'à l'environnement standard App Engine. stage.disableJarJsps app.stage.disableJarJsps
dockerBuild Effectue une compilation Docker hébergée (remote) ou locale (local). Pour effectuer une compilation locale, vous devez disposer d'un environnement Docker local correctement configuré. La valeur par défaut est une version hébergée. deploy.dockerBuild app.deploy.dockerBuild
dockerfile Emplacement du Dockerfile à utiliser pour les applications App Engine standards s'exécutant dans un environnement flexible. Ne s'applique qu'à l'environnement standard App Engine. stage.dockerfile app.stage.dockerfile
enableJarClasses Crée le contenu WEB-INF/classes au format JAR. Ne s'applique qu'à l'environnement standard App Engine. stage.enableJarClasses app.stage.enableJarClasses
enableJarSplitting Divise les fichiers JAR supérieurs à 10 Mo en fragments plus petits. Ne s'applique qu'à l'environnement standard App Engine. stage.enableJarSplitting app.stage.enableJarSplitting
enableQuickstart Utilise le démarrage rapide Jetty afin de traiter les annotations servlet. Ne s'applique qu'à l'environnement standard App Engine. stage.enableQuickstart app.stage.enableQuickstart
force Force le déploiement, en ignorant tous les déploiements précédemment en cours sur cette version. deploy.force app.deploy.force
imageUrl À déployer avec une image Docker spécifique. L'URL Docker doit provenir de l'un des noms d'hôte valides de Google Container Registry. deploy.imageUrl app.deploy.imageUrl
jarSplittingExcludes Exclut les fichiers qui correspondent à la liste des SUFFIXES séparés par des virgules de tous les fichiers JAR. Ne s'applique qu'à l'environnement standard App Engine. stage.jarSplittingExcludes app.stage.jarSplittingExcludes
projectId Nom du projet Google Cloud Platform à utiliser pour cet appel. Vous devez spécifier un ID de projet, ou vous pouvez définir GCLOUD_CONFIG pour utiliser le projet défini dans votre état de configuration gcloud. deploy.projectId app.deploy.projectId
promote Passe à la version déployée pour recevoir tout le trafic La valeur par défaut est True. deploy.promote 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. deploy.server app.deploy.server
sourceDirectory Obligatoire. Emplacement des fichiers d'application Web compilés ou du fichier WAR éclaté. Ceci est utilisé comme source pour la préproduction. Ne s'applique qu'à l'environnement standard App Engine. La valeur par défaut est ${project.build.directory}/${project.build.finalName}. stage.sourceDirectory app.stage.sourceDirectory
stagingDirectory Obligatoire. Répertoire dans lequel placer l'application. La valeur par défaut est ${project.build.directory}/appengine-staging. stage.stagingDirectory app.stage.stagingDirectory
stopPreviousVersion Arrête la version précédemment en cours d'exécution lors du déploiement d'une nouvelle version recevant tout le trafic. deploy.stopPreviousVersion 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. deploy.version app.deploy.version

appengine:help

Affiche des informations d'aide sur le plug-in App Engine Maven.

Pour afficher les détails des paramètres, appelez la commande suivante :

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

Vous pouvez utiliser les paramètres suivants :

Paramètre Description Propriété 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 le fichier appengine-web.xml a été modifié. Le cas échéant, le serveur recharge l'application. Ainsi, vous n'avez pas besoin d'arrêter ni de redémarrer votre application en raison des modifications apportées au fichier 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
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. Cet élément 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 vers un répertoire contenant lui-même un répertoire incluant 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 d'application pour le déploiement.

Vous pouvez utiliser les paramètres suivants :

Paramètre Description Configuration du plug-in Configuration de la ligne de commande
cloudSdkHome Paramètre facultatif permettant de configurer l'emplacement du SDK Cloud. Si cette propriété n'est pas définie, le plug-in télécharge automatiquement le SDK Cloud. cloudSdkHome cloudSdkHome
cloudSdkVersion Paramètre facultatif permettant de spécifier la version souhaitée du SDK Cloud. cloudSdkVersion cloudSdkVersion
compileEncoding Encodage des caractères à utiliser lors de la compilation des fichiers JSP. Ne s'applique qu'à l'environnement standard App Engine. stage.compileEncoding app.stage.compileEncoding
deleteJsps Supprime les fichiers JSP sources après la compilation. Ne s'applique qu'à l'environnement standard App Engine. stage.deleteJsps app.stage.deleteJsps
dockerfile Emplacement du Dockerfile à utiliser pour les applications App Engine standards s'exécutant dans un environnement flexible. Ne s'applique qu'à l'environnement standard App Engine. stage.dockerfile app.stage.dockerfile
enableJarClasses Crée le contenu WEB-INF/classes au format JAR. Ne s'applique qu'à l'environnement standard App Engine. stage.enableJarClasses app.stage.enableJarClasses
enableJarSplitting Divise les fichiers JAR supérieurs à 10 Mo en fragments plus petits. Ne s'applique qu'à l'environnement standard App Engine. stage.enableJarSplitting app.stage.enableJarSplitting
enableQuickstart Utilise le démarrage rapide Jetty afin de traiter les annotations servlet. Ne s'applique qu'à l'environnement standard App Engine. stage.enableQuickstart app.stage.enableQuickstart
jarSplittingExcludes Exclut les fichiers qui correspondent à la liste des SUFFIXES séparés par des virgules de tous les fichiers JAR. Ne s'applique qu'à l'environnement standard App Engine. stage.jarSplittingExcludes app.stage.jarSplittingExcludes
sourceDirectory Obligatoire. Emplacement des fichiers d'application Web compilés ou du fichier WAR éclaté. Ceci est utilisé comme source pour la préproduction. Ne s'applique qu'à l'environnement standard App Engine. La valeur par défaut est ${project.build.directory}/${project.build.finalName}. stage.sourceDirectory app.stage.sourceDirectory
stagingDirectory Obligatoire. Répertoire dans lequel placer l'application. La valeur par défaut est ${project.build.directory}/appengine-staging. stage.stagingDirectory 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. Cet élément 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 vers un répertoire contenant lui-même un répertoire incluant 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 Paramètre facultatif permettant de configurer l'emplacement du SDK Cloud. Si cette propriété n'est pas définie, le plug-in télécharge automatiquement le SDK Cloud. cloudSdkHome cloudSdkHome

Résoudre les erreurs d'importation

Si vous utilisez l'objectif deploy, votre tentative de déploiement peut échouer et un message semblable à celui-ci peut s'afficher : 404 Not Found This application does not exist (app_id=u'your-app-ID'). Cette erreur se produira si vous avez plusieurs comptes Google et utilisez le mauvais compte pour effectuer la mise à jour.

Pour résoudre ce problème, essayez de modifier l'utilisateur autorisé avec gcloud auth login.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Java