Utiliser Apache Maven et le plug-in App Engine

Apache Maven est un outil d'automatisation de la compilation pour Java.

App Engine fournit un plug-in Maven que vous pouvez utiliser pour créer et déployer votre application sur App Engine. Le plug-in n'est pas compatible avec les projets Enterprise Application Archive (EAR).

Avant de commencer

  1. Déterminez si Maven est installé et la version dont vous disposez en exécutant la commande suivante :

    mvn -v
    

    Si Maven est installé, une longue chaîne d'informations commençant par Apache Maven et suivie d'un numéro de version tel que 3.5 s'affiche.

  2. Si vous n'avez pas encore installé Maven 3.5 ou une version ultérieure, procédez comme suit :

    1. Téléchargez Maven 3.5 ou une version ultérieure.
    2. Installez Maven 3.5 ou une version ultérieure.
  3. Si vous ne l'avez pas déjà fait, suivez les étapes décrites ici pour télécharger gcloud CLI, créer votre projet Google Cloud et initialiser votre application App Engine.

  4. Installez le composant gcloud CLI app-engine-java :

    gcloud components install app-engine-java
    

Ajouter le plug-in App Engine Maven

Pour utiliser le plug-in App Engine Maven, ajoutez les lignes suivantes à la section plugins du fichier pom.xml de votre projet :

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.7.0</version>
   </plugin>
   <plugin>
     <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <version>9.3.7.v20160115</version>
   </plugin>
</plugins>
Le plug-in App Engine inclut le plug-in Jetty Maven, qui vous permet de tester rapidement votre application sans créer de fichier WAR.

Utiliser le plug-in Jetty Maven pour tester votre application en local

À 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 Jetty Maven.

Pour exécuter votre application sur le serveur de développement :

  1. Compilez votre application si ce n'est pas déjà fait :

    mvn package
    
  2. Déplacez le répertoire au niveau supérieur de votre projet (par exemple, myapp), puis exécutez l'application en appelant Maven :

    mvn jetty:run
    
  3. Attendez que le serveur démarre, ouvrez votre navigateur et consultez la page http://localhost:8080/ afin d'accéder à votre application.

  4. Arrêtez l'application et le serveur de développement en appuyant sur Ctrl + C.

Créer et déployer votre application

Après avoir ajouté le plug-in App Engine Maven au fichier pom.xml de votre projet, vous pouvez utiliser la commande suivante pour déployer votre application :

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

Remplacez PROJECT_ID par l'ID de votre projet Google 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 package crée et empaquette votre application, et l'objectif appengine:deploy effectue les opérations suivantes :

  1. Il génère un ID de version unique pour la nouvelle version de votre application.

  2. Il déploie la nouvelle version sur App Engine.

  3. Il achemine tout le trafic vers la nouvelle version.

Modifier les paramètres de déploiement par défaut

Vous pouvez modifier le comportement du déploiement par défaut en transmettant des paramètres avec la commande appengine:deploy. Par exemple, la commande suivante déploie le service défini dans votre fichier pom.xml sur un projet Google Cloud spécifique, lui attribue un ID de version personnalisé et désactive le routage automatique du trafic pour la nouvelle version :

mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.version=VERSION_ID -Dapp.deploy.promote=False

Vous pouvez également utiliser la commande appengine:deploy pour déployer des fichiers de configuration, tels que cron.yaml, dispatch.yaml et index.yaml.

Pour en savoir plus, consultez la documentation de référence sur appengine:deploy.

Étapes suivantes