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.
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
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éé.
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>
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 Cloud Tools for Eclipse depuis Eclipse Marketplace.
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.
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é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.
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.
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.
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.