Création d'un environnement de développement avec Maven sur Google App Engine [Java]

Récemment, j'ai essayé d'utiliser GAE (Google App Engine) pour la première fois, mais j'étais accro à la construction initiale du projet, alors je l'ai écrit sous forme d'article. Le but de cet article est de pouvoir construire et déployer avec Maven.

Environnement de développement visé par cet article

Cet article suppose ce qui suit comme environnement de développement.

--GAE utilise l'environnement standard --Java + Maven est utilisé pour la construction, la construction et le déploiement du projet initial --Eclipse est utilisé comme éditeur de développement

Construction initiale du projet

On suppose que l'enregistrement du compte et la création du projet côté cloud sont terminés. Commencez par créer un projet initial dans Maven. Selon la documentation GAE (https://cloud.google.com/appengine/docs/standard/java/tools/maven?hl=ja), vous pouvez effectuer les opérations suivantes:

 mvn archetype:generate -Dappengine-version=1.9.71 \
  -Djava8=true -DCloudSDK_Tooling=false \
  -Dapplication-id=your-app-id \
  -Dfilter=com.google.appengine.archetypes:

Pour your-app-id, spécifiez l'ID de projet du GAE sur lequel effectuer le déploiement. J'ai juste fait ce qui précède sans réfléchir et je suis devenu accro plus tard. Même si vous faites une erreur dans l'ID du projet, vous pouvez la corriger ultérieurement.

1: remote -> com.google.appengine.archetypes:appengine-flexible-archetype (A basic Java application with Google App Engine flexible.)
2: remote -> com.google.appengine.archetypes:appengine-skeleton-archetype (A skeleton application with Google App Engine)
3: remote -> com.google.appengine.archetypes:appengine-standard-archetype (A basic Java application with Google App Engine Standard)
4: remote -> com.google.appengine.archetypes:endpoints-skeleton-archetype (A skeleton project using Cloud Endpoints Frameworks with Google App Engine Standard)
5: remote -> com.google.appengine.archetypes:guestbook-archetype (A guestbook application with Google App Engine)
6: remote -> com.google.appengine.archetypes:hello-endpoints-archetype (A simple starter application using Cloud Endpoints Frameworks with Google App Engine Standard)
7: remote -> com.google.appengine.archetypes:skeleton-archetype (Archetype with a README about Google App Engine archetypes)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :

On me demande un archtype, mais j'ai choisi 3: appengine-standard-archetype car c'est un environnement standard. 2: appengine-skeleton-archetype est presque le même que 3. 4: Si vous sélectionnez endpoints-skeleton-archetype, vous pouvez créer quelque chose comme une application REST.

On vous demandera groupId, artifactId, package, etc., donc si vous les saisissez en temps opportun, un projet Maven sera créé.

Modifier pom.xml

Modifier l'ID et la version du projet

Si vous souhaitez modifier l'ID du projet, modifiez \ <appID > sous \ <build > \ <plugins >. Voici la partie {your-app-id} ci-dessous. Si cela ne peut pas être défini sur la valeur correcte, le déploiement échouera. Spécifiez la version dans \ <version >.

<plugin>
  <groupId>com.google.appengine</groupId>
  <artifactId>appengine-maven-plugin</artifactId>
  <version>1.9.71</version>
  <configuration>
    <appId>{your-app-id}</appId> <!-- Override appengine-web.xml <project> -->
    <version>1</version>
    ...
  </configuration>
</plugin>

Bibliothèque ajoutée

Ajoutez les bibliothèques requises. J'ai ajouté ce qui suit pour utiliser gcs (Google Cloud Storage). Étant donné que gcs-client a de nombreuses bibliothèques dépendantes, il est utile de le faire avec Maven.

<dependency>
  <groupId>com.google.appengine.tools</groupId>
  <artifactId>appengine-gcs-client</artifactId>
  <version>0.8</version>
</dependency>

Installez Google Cound Tools sur Eclipse

Installez Google Cloud Tools for Eclipse depuis Eclipse Marketplace.

Importer dans Eclipse

Importez le projet Maven que vous avez créé à partir de Fichier-> Importer-> Projets Maven existants dans Eclipse. Veuillez noter que mvn eclipse: eclipse ne fonctionne pas bien.

Modifier appengine-web.xml

Lors de la recherche d'articles liés à GAE, beaucoup d'entre eux disent que les paramètres d'application sont décrits dans app.yaml, mais lors de l'utilisation de Java dans l'environnement standard GAE, ils sont généralement décrits dans appengine-web.xml. Cela semble être la cible. J'ai modifié les éléments suivants:

article La description
ssl-enabled Défini sur true si seul https est utilisé.
static-files Spécifiez un fichier statique.(Le traitement des demandes de fichiers statiques ne consomme pas de temps d'instance)

De plus, il existe des éléments de paramétrage liés à la mise à l'échelle. Consultez la Référence appengine-web.xml pour plus d'informations.

Exécuter dans un environnement local

Exécutez ce qui suit pour exécuter l'application dans votre environnement local.

mvn appengine:run

Ce qui suit décrit les points à noter lors de l'exécution dans l'environnement local.

Commentaire temporaire fourni pour appengine-api-1.0-sdk

Appengine-api-1.0-sdk est utilisé lors de l'utilisation de l'API de gae, mais pom.xml indique \ <scope > fourni \ </ scope > et est inclus dans l'application elle-même. ne pas. Dans l'environnement local, appengine-api-1.0-sdk n'existe pas dans la bibliothèque commune, il doit donc être inclus dans l'application elle-même. Pour cette raison, commentez temporairement \ <scope > fourni \ </ scope >. Veuillez noter que vous devez annuler le commentaire lors du déploiement.

Console développeur

En accédant à http: // localhost: 8080 / _ah / admin, vous pouvez vérifier l'état de Google Cloud Storage (émulation) qui fonctionne localement. (Veuillez changer le numéro de port en fonction de votre environnement) Au moment de la rédaction de cet article, il n'était pas possible de faire des corrections uniquement en affichant les données.

Déployer

Vous pouvez effectuer un déploiement vers GAE ci-dessous.

mvn appengine:deploy

S'il n'est pas lié à votre compte, vous devrez ouvrir votre navigateur, vous connecter à Google et saisir le jeton affiché dans la console où la commande ci-dessus est exécutée.

référence

Recommended Posts

Création d'un environnement de développement avec Maven sur Google App Engine [Java]
Utilisation du fichier de propriétés avec l'environnement flexible Java 8 de Google App Engine
Développement Google AppEngine avec Docker
Déployer l'application Django sur Google App Engine (Python3)
Procédure de construction de l'environnement de développement Google App Engine / Python (fin 2014)
PIL en Python sur Windows8 (pour Google App Engine)
Hello World avec Google App Engine (Java 8) + Spring Boot + Gradle
Hello World avec Google App Engine (Java 8) + API Servlet 3.1 + Gradle
Création d'un environnement de développement Jupyter Lab sur WSL2 à l'aide d'Anaconda3
Hello World avec Google App Engine (Java 11) + Spring Boot + Gradle
Créer un environnement Kubernetes avec Ansible 2
Construire un environnement Python sur Mac
Prise en charge de Java 1 1 par Google App Engine
Créer un environnement virtuel avec Python 3
Utilisez ndb.tasklet avec Google App Engine
Créer un environnement Kubernetes avec Ansible 1
Comment se connecter à Cloud SQL PostgreSQL sur Google Cloud Platform à partir d'un environnement local avec Java
Avez-vous des recommandations pour un livre de commentaires sur le développement de GoogleAppEngine / Python?
[Google App Engine] Flux de la construction de l'environnement de développement à la création de l'application
[Pyenv] Construire un environnement python avec ubuntu 16.04
Créez facilement un environnement de développement avec Laragon
Création d'un environnement LaTeX sur Chrome OS
[Python] Exécutez Flask sur Google App Engine
Utiliser des modules externes avec Google App Engine
Je ne peux plus déployer avec le moteur d'application Google
Créer un environnement de développement Python pour le développement de l'IA
Procédure de création d'un environnement Kube sur Amazon Linux2 (AWS) ~ (avec bonus)
[Version détaillée] Créer un environnement Python confortable avec Google Compute Engine (Ubuntu 16.04)
Créer un environnement de développement de langage C avec un conteneur
Créez un environnement WardPress sur AWS avec Pulumi
Construire un environnement python avec virtualenv et direnv
Créez un environnement python avec ansible sur centos6
[Python] Créer un environnement de développement Django avec Docker
Tweet (API 1.1) avec Google App Engine pour Python
Créez un environnement de développement Python sur votre Mac
Créer un environnement de développement Django à l'aide de Doker Toolbox
Créer un environnement Kubernetes pour le développement sur Ubuntu
Construire un environnement Python sur le serveur Sakura VPS
Construire un environnement de développement Python sur Raspberry Pi
Obtenez un environnement de développement Python rapide avec Poetry
Une histoire sur la création d'un environnement IDE avec WinPython sur un ancien système d'exploitation Windows.
Compilation croisée de Raspberry Pi et création d'un environnement de développement de débogage à distance avec VS Code
Désactivez les options d'optimisation dans l'environnement de développement Google App Engine Go dev_appserver.py
Créer un environnement de développement TensorFlow sur Amazon EC2 avec une copie de commande
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Créer un environnement de développement Django à l'aide de pyenv-virtualenv sur Mac
Recommandation de construction d'un environnement Python portable avec conda
Créez un environnement de développement local pour Laravel6.X sur votre Mac
Réparer un environnement de développement cassé avec la migration des non-conformistes (Remarque)
Jusqu'à ce que vous exécutiez l'application Flask sur Google App Engine pour le moment
Créez un environnement de développement Python 3 (Anaconda) confortable avec Windows
Créez un environnement de développement python avec vagrant + ansible + fabric
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Créer un environnement de développement Python sur Mac OS X
(Débutant) Utilisation de base du magasin de données de Google App Engine
Pratique de développement d'applications Web: Créez une page de création d'équipe avec Django! (Expérience sur la page d'administration)