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 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 .
|
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 précédents du plug-in 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 paramètres dans le fichier pom.xml
ou dans la ligne de commande.
Pour configurer ces paramètres dans le fichier pom.xml
, ajoutez leur nom à 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.2.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, dont certains correspondent aux options 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, vos 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éez 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é. Il sert de 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 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 |
---|---|---|---|
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 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éez 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é. Il sert de 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. 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 |
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 avec un message semblable à celui-ci : 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.