Passer au plug-in Maven basé sur le SDK Cloud

Si vous utilisez le plug-in basé sur le SDK Java App Engine (com.google.appengine.appengine-maven) et que vous souhaitez passer au nouveau SDK Cloud, effectuez une migration vers le plug-in basé sur le SDK Cloud (com.google.cloud.tools.appengine-maven).

Avantages du plug-in basé sur le SDK Cloud

La mise à niveau vers le nouveau plug-in offre les avantages suivants :

  • Il utilise les mêmes identifiants que toutes les autres commandes basées sur le SDK Cloud, qui sont générés à partir du flux gcloud auth login standard.

  • Il est compatible avec l'environnement flexible App Engine.

  • Il met à jour automatiquement le serveur de développement local dans le cadre du flux de mise à jour standard du SDK Cloud.

  • Il accepte le déploiement des configurations de services App Engine (Cron, files d'attente, DoS, distribution), indépendamment de votre service.

Différences notables

Avant d'effectuer la migration, veuillez prendre en compte les différences notables suivantes :

Dépendance au SDK Cloud
L'ancien plug-in s'exécute sans aucune dépendance spécifique à l'environnement local, hors Java, mais le nouveau plug-in nécessite l'installation du SDK Cloud.
Aucune génération de documents de découverte Endpoints
Le nouveau plug-in ne génère pas de documents de découverte Endpoints, une fonctionnalité disponible dans un plug-in distinct. L'exécution du backend Endpoints n'exige plus de générer ce fichier lors d'une étape de compilation, car le serveur le génère désormais au moment de l'exécution. Vous ne devez utiliser le nouveau plug-in que si vous devez générer des bibliothèques clientes, comme celles pour iOS ou Android. Pour en savoir plus sur les nouveaux plug-ins, consultez le guide Migrer vers Endpoints Frameworks pour App Engine.
Le format de fichier EAR n'est plus accepté.
Le nouveau plug-in n'accepte plus le format de fichier EAR pour l'exécution et le déploiement de plusieurs services en même temps.
Nouvelle commande de déploiement
L'ancien plug-in appelle la commande appcfg pour déployer des applications, alors que le nouveau plug-in se déploie à l'aide de la nouvelle CLI gcloud.
Les tâches d'amélioration JPA/JDO Datanucleus ne sont plus incluses.
Le nouveau plug-in n'est compatible avec aucun type d'amélioration Datanucleus. Si votre projet bénéficie de la compatibilité avec l'amélioration JDO ou JPA Datanucleus de l'ancien plug-in, vous devez configurer le plug-in Datanucleus Maven tiers séparément lors de la migration (instructions pour JDO, instructions pour JPA).

L'utilisation des fichiers de configuration au format YAML est acceptée, mais pas au format XML.

Migrer vers le nouveau plug-in

Pour migrer vers le nouveau plug-in, procédez comme suit :

  1. Ajoutez le plug-in basé sur le SDK Cloud à votre fichier pom.xml.

    <build>
        <plugins>
           [...]
              <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>2.0.0</version>
                <configuration>
                    <projectId>your-project-ID-goes-here</projectId>
                    <version>1</version>
                </configuration>
            </plugin>
           [...]
        </plugins>
    </build>
    
  2. Spécifiez l'ID du projet Google Cloud Platform cible, ainsi que le service et la version dans la configuration du plug-in. Le nouvel outil ignore les éléments d'application et de version du fichier appengine-web.xml.

  3. Testez votre nouvelle configuration en exécutant et en déployant votre application comme suit :

    1. Exécutez l'application en utilisant le nom complet du plug-in :

        mvn com.google.cloud.tools:appengine-maven-plugin:run
      
    2. Déployez l'application en utilisant le nom complet du plug-in :

        mvn com.google.cloud.tools:appengine-maven-plugin:deploy
      

      Assurez-vous de nommer l'appel d'objectif du plug-in dans l'espace de noms si l'ancien plug-in App Engine est toujours présent dans votre fichier pom.xml.

Si vous disposez d'une configuration plus personnalisée, vous devriez trouver des indicateurs équivalents de préproduction, d'exécution locale et de déploiement dans le nouveau plug-in.

Après avoir vérifié que tout fonctionne comme prévu, supprimez com.google.appengine appengine-maven-plugin du fichier pom.xml et les éléments d'application et de version du fichier appengine-web.xml.

Vous pouvez maintenant appeler les objectifs de votre nouveau plug-in en utilisant la notation abrégée suivante :

mvn package appengine:deploy

Migrer des configurations multiservices basées sur EAR

Avec le nouveau plug-in, vous ne regroupez pas vos services dans un package EAR. Au lieu de cela, vous spécifiez une liste de services à exécuter à partir de la configuration appengine-maven-plugin de l'un de vos services App Engine.

Vous pouvez configurer l'exécution de ces services dans votre service par défaut, car tous les projets App Engine nécessitent un service par défaut.

Pour migrer votre projet App Engine basé sur EAR vers les nouveaux outils, procédez comme suit :

  1. Pour chaque context-root du fichier application.xml de votre package EAR, ajoutez un élément "service" aux services par défaut de la configuration d'exécution de appengine-maven-plugin. Exemple :

    <plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>appengine-maven-plugin</artifactId>
        <version>2.0.0</version>
        <configuration>
            <deploy.projectId>your-project-name</deploy.projectId>
            <deploy.version>your-project-version</deploy.version>
            <services>
                <!-- your default service -->
                <service>${project.build.directory}/${project.name}-${project.version}
                </service>
                <!-- for each service in your EARs application.xml -->
                <service>
                    ${project.parent.basedir}/service-name/target/service-artifact-${project.version}
                </service>
            </services>
        </configuration>
    </plugin>
    
  2. Confirmez que votre nouvelle configuration fonctionne en exécutant la commande suivante à partir du répertoire de service par défaut :

    mvn package appengine:run
    
  3. Après avoir vérifié que le service par défaut exécute tous les services localement, supprimez complètement votre package EAR.

Si le répertoire racine de votre projet ne contient que vos services, vous pouvez déployer tous ces services à l'aide d'une seule commande Maven. Vous devez d'abord ajouter appengine-maven-plugin à votre fichier pom.xml parent, puis vous pouvez exécuter la commande mvn appengine:deploy.

La commande de déploiement parcourt chacun des services du projet dans le but de localiser leurs fichiers de configuration, puis de déployer chaque service.

Comparaison entre les commandes Maven basées sur le SDK App Engine et celles basées sur le SDK Cloud

Le tableau suivant indique les différentes manières d'appeler le plug-in Maven, selon que vous utilisez le plug-in Maven basé sur le SDK App Engine ou celui basé sur le SDK Cloud.

Action Basé sur le SDK App Engine Basé sur le SDK Cloud
Exécuter l'application en local appengine:devserver appengine:run
Déployer une nouvelle application, une nouvelle version ou un nouveau service appengine:update appengine:deploy ou appengine:deployAll
Définir la version de l'application par défaut appengine:set_default_version gcloud app services set-traffic ou gcloud app versions migrate
Mettre à jour les tâches Cron de l'application appengine:update_cron appengine:deployCron
Mettre à jour la configuration de distribution de l'application. appengine:update_dispatch appengine:deployDispatch
Mettre à jour la configuration de la protection DoS pour l'application appengine:update_dos appengine:deployDos
Mettre à jour les définitions de la file d'attente de tâches de l'application appengine:update_queues appengine:deployQueue
Mettre à jour les index Datastore appengine:update_indexes appengine:deployIndex
Supprimer les index non utilisés de l'application appengine:vacuum_indexes gcloud datastore cleanup-indexes
Démarrer la version spécifiée appengine:start_module_version gcloud app versions start
Arrêter la version spécifiée appengine:stop_module_version gcloud app versions stop
Effectuer un rollback d'une mise à jour en cours appengine:rollback
Notez que vous pouvez également effectuer une migration du trafic vers une ancienne version
gcloud app versions start, gcloud app versions stop, ou utilisez gcloud app services set-traffic) pour effectuer une migration vers une ancienne version.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Java 8