Cette page explique comment gérer un projet App Engine à l'aide d'Apache Maven, un outil de gestion et de compréhension des projets logiciels capable de créer des fichiers WAR (Web Application Archive) à déployer dans App Engine. Google fournit un plug-in et des archétypes Maven compatibles avec Maven version 3.5 ou ultérieure.
Vous pouvez utiliser Maven pour tester votre application localement et la déployer sur App Engine.
Avant de commencer
- Utilisez Google Cloud Console pour créer et configurer votre projet Cloud :
Accéder à App Engine- Sélectionnez ou créez un projet Cloud.
- Si vous devez créer une application App Engine pour votre projet, suivez les instructions qui s'affichent pour sélectionner la région dans laquelle vous souhaitez placer cette dernière.
- Si vous n'avez pas encore Java, téléchargez, installez et configurez Java.
- Définissez les options de compilation Java du fichier
pom.xml
de votre projet de manière à spécifier l'utilisation du bytecode Java 8 :Java 8 - Vous devez avoir installé Maven 3.5 ou une version ultérieure. Pour vérifier si Maven 3.5 ou une version ultérieure est installé, exécutez la commande suivante :
mvn -v
- Si vous n'avez pas encore installé Maven 3.5 ou une version ultérieure, procédez comme suit :
- Téléchargez Maven 3.5 ou une version ultérieure depuis le site Web Maven.
- Installez Maven 3.5 ou une version ultérieure sur votre ordinateur local.
Remarque : Les utilisateurs de Linux devront peut-être télécharger Maven au lieu d'utiliser la commande
apt-get install
pour installer Maven 3.5 ou une version plus récente.
- Définissez le projet par défaut pour les commandes "gcloud" dans la configuration actuelle en exécutant la commande suivante :
gcloud config set project PROJECT
Où PROJECT est l'ID du projet.
Ajouter le plug-in App Engine Maven à un projet existant (facultatif)
Pour utiliser le plug-in Google App Engine Maven dans un projet Maven existant, ajoutez les éléments suivants dans la section plugins
du fichier pom.xml
du projet :
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.4.4</version>
</plugin>
Choisir un archétype App Engine
Les archétypes Maven permettent aux utilisateurs de créer des projets Maven à l'aide de modèles couvrant des scénarios courants. App Engine exploite cette fonctionnalité Maven pour fournir des archétypes App Engine utiles dans le dépôt central de Maven. Sélectionnez un archétype App Engine adapté à votre application :
Type d'application | Artefact | Description |
---|---|---|
Application App Engine | appengine-skeleton-archetype |
Génère un nouveau projet App Engine vide et prêt pour accueillir vos propres classes et ressources, mais avec l'ensemble des fichiers et répertoires requis. |
Application App Engine | appengine-standard-archetype |
Génère une application Java de base pour l'environnement standard App Engine. |
Application App Engine | appengine-flexible-archetype |
Génère une application Java de base pour l'environnement flexible App Engine. |
Créer un projet avec Maven
Lors de la création d'un projet, Maven vous invite à fournir les éléments suivants : groupId
, artifactId
, version
et package
.
Terme | Signification |
---|---|
groupId |
Espace de noms au sein de Maven permettant le suivi vos artefacts. Lorsque des personnes utilisent votre projet dans leur propre projet Maven, cet espace de noms servira d'attribut de la dépendance qu'elles devront spécifier. |
artifactId |
Nom de votre projet au sein de Maven. Celui-ci est également spécifié par les utilisateurs de votre projet lorsque leurs propres projets Maven en dépendent. |
version |
Version initiale de Maven à partir de laquelle vous souhaitez générer votre projet. Il est recommandé de choisir un élément version dont le suffixe est -SNAPSHOT , car cela garantit la compatibilité de votre plug-in Maven avec les versions en cours de développement. Pour plus d'informations, consultez le guide Maven sur l'utilisation de la dernière version du plug-in. |
package |
Package Java créé lors de la génération du projet. |
Créer une application App Engine
La procédure suivante explique comment utiliser appengine-skeleton-archetype
pour créer une application App Engine.
Pour utiliser les archétypes App Engine Maven pour créer une application App Engine :
Remplacez le répertoire actuel par celui dans lequel vous voulez créer le projet.
Appelez la commande Maven suivante :
mvn archetype:generate -Dappengine-version=1.9.59 -Dapplication-id=[YOUR-PROJECT-ID] -Dfilter=com.google.appengine.archetypes:
Définissez l'option
-Dappengine-version
sur la version la plus récente du SDK App Engine pour Java, et l'optionapplication-id
sur l'ID de votre projet Cloud.Pour créer un projet vide contenant une structure de répertoires et de fichiers prêts pour vos propres classes, indiquez le numéro correspondant à
com.google.appengine.archetypes:appengine-skeleton-archetype
.Sélectionnez la version la plus récente dans la liste des versions d'archétypes disponibles qui s'affiche.
Lorsque l'invite
Define value for property 'groupId'
s'affiche, indiquez l'espace de noms souhaité pour l'application. Par exemple :com.mycompany.myapp
.Lorsque l'invite
Define value for property 'artifactId'
s'affiche, indiquez le nom du projet. Par exemple :myapp
.Lorsque l'invite
Define value for property 'version'
s'affiche, acceptez la valeur par défaut.Lorsque l'invite
Define value for property 'package'
s'affiche, indiquez le nom du package souhaité (ou acceptez le nom par défaut). Les fichiers Java générés portent le nom du package que vous spécifiez ici.Lorsque vous êtes invité à confirmer vos choix, acceptez la valeur par défaut (
Y
).Attendez la fin de la génération du projet, puis remplacez les répertoires par le nouveau répertoire du projet, par exemple
myapp/
.Créez le projet en appelant :
mvn clean package
Attendez que le projet se crée. Un message semblable à celui-ci s'affiche alors :
[INFO] -------------------------------------------------- [INFO] BUILD SUCCESS [INFO] -------------------------------------------------- [INFO] Total time: 1:16.656s [INFO] Finished at: 2016-08-04T16:18:24-07:00 [INFO] Final Memory: 16M/228M [INFO] --------------------------------------------------
Si vous avez créé une nouvelle application vide avec l'artefact
appengine-skeleton-archetype
:Avant de commencer à coder vos propres classes pour l’application, familiarisez-vous avec la structure de base du projet et les fichiers de projet requis : dans le répertoire où vous avez créé le projet se trouvent un sous-répertoire nommé
myapp
contenant un fichierpom.xml
, le sous-répertoiresrc/main/java
et le sous-répertoiresrc/main/webapp/WEB-INF
:- Ajoutez vos propres classes Java dans
src/main/java/...
- Configurez votre application avec le fichier
src/main/webapp/WEB-INF/appengine-web.xml
- Configurez le déploiement de votre application avec le fichier
src/main/webapp/WEB-INF/web.xml
- Ajoutez vos propres classes Java dans
Créez les classes Java pour votre application et ajoutez-les à
src/main/java/...
. Pour plus d'informations, consultez le Guide de démarrage.Ajoutez l'UI que vous souhaitez fournir aux utilisateurs de l'application. Pour en savoir plus, consultez Ajouter un code et une UI à une application.
L'artefact que vous avez utilisé pour créer le projet a effectué la configuration
src/main/webapp/WEB-INF/appengine-web.xml
de base. Toutefois, pour une configuration plus avancée, vous devrez peut-être modifier ce fichier. Pour en savoir plus, consultez la page Configurer avec appengine-web.xml.Modifiez le fichier
src/main/webapp/WEB-INF/web.xml
pour mapper les URL aux gestionnaires d'applications, spécifier l'authentification, les filtres, etc. Ce processus est décrit en détail dans Descripteur de déploiement.
Gérer, tester et déployer un projet Maven
Compiler et créer un projet
Pour créer une application basée sur les archétypes App Engine Maven, procédez comme suit :
Accédez au répertoire principal de votre projet.
Appelez Maven :
mvn clean package
Attendez que le projet se crée. Un message semblable à celui-ci s'affiche alors :
BUILD SUCCESS Total time: 10.724s Finished at: 2016-08-04T16:18:24-07:00 Final Memory: 24M/213M
Vous pouvez également tester l'application créée en suivant la procédure décrite ci-dessous.
Tester votre application avec un serveur de développement
À tout moment pendant la phase de développement, vous pouvez exécuter et tester votre application sur le serveur de développement en appelant le plug-in App Engine Maven.
Pour tester votre application App Engine :
Si ce n'est pas déjà fait, créez votre application à l'aide de la commande suivante :
mvn clean package
Déplacez le répertoire au niveau supérieur de votre projet (par exemple,
myapp
) et appelez Maven :mvn appengine:run
Attendez que le serveur démarre. Une fois le serveur complètement démarré et votre application en cours d'exécution, un message semblable à celui-ci s'affiche :
[INFO] GCLOUD: INFO: Module instance default is running at http://localhost:44180/ [INFO] GCLOUD: Jul 29, 2016 9:23:55 PM com.google.appengine.tools.development.AbstractModule startup [INFO] GCLOUD: INFO: The admin console is running at http://localhost:44180/_ah/admin [INFO] GCLOUD: Jul 29, 2016 9:23:55 PM com.google.appengine.tools.development.devappserver2.DevAppServer2Impl doStart [INFO] GCLOUD: INFO: Dev App Server is now running
Ouvrez
http://localhost:8080/
dans votre navigateur pour accéder à votre application.Fermez l'application et le serveur de développement en appuyant sur Ctrl+C.
Spécifier un port pour les tests locaux
Lorsque vous exécutez votre application sur un serveur de développement local, le port par défaut est 8080
. Vous pouvez changer cette valeur par défaut en modifiant l'entrée du plug-in pour appengine-maven-plugin
. Par exemple, vous pouvez spécifier le port et l'adresse comme suit dans le fichier pom.xml
du répertoire de votre application :
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.4.4</version>
<configuration>
<devserver.host>0.0.0.0</devserver.host>
<devserver.port>8181</devserver.port>
</configuration>
</plugin>
</plugins>
Dans cet exemple, <devserver.port>
définit le port sur 8181
au lieu du port par défaut, et l'adresse 0.0.0.0
est spécifiée, ce qui signifie que le serveur de développement écoute les requêtes issues du réseau local.
Le préfixe devserver
est facultatif. Vous pouvez utiliser <port>8181</port>
à la place.
Déboguer votre application sur un serveur de développement
Pour déboguer une application en cours d'exécution localement, définissez jvmFlags
dans la configuration du plug-in de manière à activer le débogage sur la JVM sous-jacente, par exemple :
<configuration>
<jvmFlags>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</jvmFlag>
</jvmFlags>
</configuration>
Déployer l'application
Pour déployer votre application, procédez comme suit :
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet Cloud. Si votre ID de projet est déjà inclus dans le fichier pom.xml
, vous n'avez pas besoin d'inclure la propriété -Dapp.deploy.projectId
dans la commande que vous exécutez.
L'objectif appengine:deploy
et tous les autres objectifs du plug-in App Engine Maven sont associés à des paramètres que vous pouvez utiliser. Pour obtenir la liste complète des objectifs et des paramètres, consultez la page Objectifs et paramètres du plug-in App Engine Maven.
Étapes suivantes
- Explorez le code du plug-in App Engine Maven et signalez les problèmes sur GitHub.
- Apprenez à spécifier des paramètres pour les objectifs en vous reportant à la page Objectifs et paramètres App Engine Maven.