Erstellen einer Entwicklungsumgebung mit Maven in Google App Engine [Java]

Vor kurzem habe ich zum ersten Mal versucht, GAE (Google App Engine) zu verwenden, aber ich war süchtig nach der anfänglichen Projektkonstruktion, also habe ich es als Artikel geschrieben. Das Ziel dieses Artikels ist es, mit Maven erstellen und bereitstellen zu können.

Entwicklungsumgebung, auf die sich dieser Artikel bezieht

In diesem Artikel wird Folgendes als Entwicklungsumgebung angenommen.

--GAE verwendet eine Standardumgebung

Erste Projektkonstruktion

Es wird davon ausgegangen, dass die Registrierung des Kontos und die Projekterstellung auf der Cloud-Seite abgeschlossen sind. Erstellen Sie zunächst ein erstes Projekt in Maven. Gemäß der GAE-Dokumentation (https://cloud.google.com/appengine/docs/standard/java/tools/maven?hl=ja) können Sie Folgendes tun:

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

Geben Sie für Ihre App-ID die Projekt-ID der GAE an, für die die Bereitstellung erfolgen soll. Ich habe das oben genannte einfach ohne nachzudenken gemacht und war später davon begeistert. Auch wenn Sie einen Fehler in der Projekt-ID machen, können Sie diesen später korrigieren.

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): :

Ich werde nach Archtyp gefragt, aber ich habe 3 gewählt: Appengine-Standard-Archetyp, weil es eine Standardumgebung ist. 2: Appengine-Skelett-Archetyp ist fast der gleiche wie 3. 4: Wenn Sie Endpunkte-Skelett-Archetyp auswählen, können Sie so etwas wie eine REST-App erstellen.

Sie werden nach Gruppen-ID, Artefakt-ID, Paket usw. gefragt. Wenn Sie diese also rechtzeitig eingeben, wird ein Maven-Projekt erstellt.

Ändern Sie pom.xml

Ändern Sie die Projekt-ID und -Version

Wenn Sie die Projekt-ID ändern möchten, ändern Sie \ <appID > unter \ <build > \ <plugins >. Dies ist der Teil {Ihre-App-ID} unten. Wenn dies nicht auf den richtigen Wert eingestellt werden kann, schlägt die Bereitstellung fehl. Geben Sie die Version in \ <version > an.

<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>

Bibliothek hinzugefügt

Fügen Sie die erforderlichen Bibliotheken hinzu. Ich habe Folgendes hinzugefügt, um gcs (Google Cloud Storage) zu verwenden. Da gcs-client viele abhängige Bibliotheken hat, ist es hilfreich, dies mit Maven zu tun.

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

Installieren Sie Google Cound Tools auf Eclipse

Installieren Sie Google Cloud Tools für Eclipse vom Eclipse Marketplace.

In Eclipse importieren

Importieren Sie das Maven-Projekt, das Sie über Datei-> Importieren-> Vorhandene Maven-Projekte in Eclipse erstellt haben. Bitte beachten Sie, dass mvn eclipse: eclipse nicht gut funktioniert.

Ändern Sie appengine-web.xml

Bei der Suche nach GAE-bezogenen Artikeln geben viele an, dass die Anwendungseinstellungen in app.yaml beschrieben sind. Wenn Sie jedoch Java in der GAE-Standardumgebung verwenden, wird dies im Allgemeinen in appengine-web.xml beschrieben. Es scheint das Ziel zu sein. Ich habe folgende Elemente geändert:

Artikel Erläuterung
ssl-enabled Auf true setzen, wenn nur https verwendet wird.
static-files Geben Sie eine statische Datei an.(Die Anforderungsverarbeitung für statische Dateien benötigt keine Instanzzeit)

Darüber hinaus gibt es Einstellungselemente für die Skalierung. Weitere Informationen finden Sie in der appengine-web.xml-Referenz.

In lokaler Umgebung ausführen

Führen Sie die folgenden Schritte aus, um die App in Ihrer lokalen Umgebung auszuführen.

mvn appengine:run

Im Folgenden werden die Punkte beschrieben, die bei der Ausführung in der lokalen Umgebung zu beachten sind.

Vorübergehender Kommentar für appengine-api-1.0-sdk

Appengine-api-1.0-sdk wird verwendet, wenn die API von gae verwendet wird. In pom.xml wird jedoch \ <scope > bereitgestellt \ </ scope > angegeben und ist in der App selbst enthalten. nicht. In der lokalen Umgebung ist appengine-api-1.0-sdk nicht in der allgemeinen Bibliothek vorhanden, daher muss es in der App selbst enthalten sein. Kommentieren Sie aus diesem Grund vorübergehend \ <Bereich > bereitgestellt \ </ Bereich > aus. Bitte beachten Sie, dass Sie den Kommentar bei der Bereitstellung rückgängig machen müssen.

Entwicklerkonsole

Durch Zugriff auf http: // localhost: 8080 / _ah / admin können Sie den Status des lokal betriebenen Google Cloud Storage (Emulation) überprüfen. (Bitte ändern Sie die Portnummer entsprechend Ihrer Umgebung) Zum Zeitpunkt des Schreibens dieses Artikels war es nicht möglich, Korrekturen nur durch Anzeigen der Daten vorzunehmen.

Bereitstellen

Sie können unten eine Bereitstellung für GAE durchführen.

mvn appengine:deploy

Wenn es nicht mit Ihrem Konto verknüpft ist, müssen Sie einen Browser öffnen, sich bei Google anmelden und das angezeigte Token in die Konsole eingeben, in der der obige Befehl ausgeführt wird.

Referenz

Recommended Posts

Erstellen einer Entwicklungsumgebung mit Maven in Google App Engine [Java]
Verwenden der Eigenschaftendatei mit Flexible Environment Java 8 von Google App Engine
Google AppEngine-Entwicklung mit Docker
Stellen Sie die Django-Anwendung in Google App Engine (Python3) bereit.
Konstruktionsverfahren für die Google App Engine / Python-Entwicklungsumgebung (Ende 2014)
PIL in Python unter Windows8 (für Google App Engine)
Hallo Welt mit Google App Engine (Java 8) + Spring Boot + Gradle
Hallo Welt mit Google App Engine (Java 8) + Servlet API 3.1 + Gradle
Erstellen einer Jupyter Lab-Entwicklungsumgebung auf WSL2 mit Anaconda3
Hallo Welt mit Google App Engine (Java 11) + Spring Boot + Gradle
Erstellen einer Kubernetes-Umgebung mit ansible 2
Erstellen einer Python-Umgebung auf einem Mac
Java 1 1-Unterstützung von Google App Engine
Erstellen einer virtuellen Umgebung mit Python 3
Verwenden Sie ndb.tasklet mit Google App Engine
Erstellen einer Kubernetes-Umgebung mit ansible 1
Herstellen einer Verbindung zu Cloud SQL PostgreSQL auf der Google Cloud Platform aus einer lokalen Umgebung mit Java
Haben Sie Empfehlungen für ein Kommentarbuch zur Entwicklung von GoogleAppEngine / Python?
[Google App Engine] Ablauf von der Erstellung der Entwicklungsumgebung bis zur Erstellung der Anwendung
[Pyenv] Erstellen einer Python-Umgebung mit Ubuntu 16.04
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Erstellen einer LaTeX-Umgebung unter Chrome OS
[Python] Führen Sie Flask in Google App Engine aus
Verwenden Sie externe Module mit Google App Engine
Ich kann nicht mehr mit der Google App Engine bereitstellen
Erstellen einer Python-Entwicklungsumgebung für die KI-Entwicklung
Vorgehensweise zum Erstellen einer Kube-Umgebung unter Amazon Linux2 (aws) ~ (mit Bonus)
[Detaillierte Version] Erstellen einer komfortablen Python-Umgebung mit Google Compute Engine (Ubuntu 16.04)
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Erstellen einer Python-Umgebung mit virtualenv und direnv
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Tweet (API 1.1) mit Google App Engine für Python
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu
Erstellen einer Python-Umgebung auf dem Sakura VPS-Server
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Holen Sie sich mit Poetry eine schnelle Python-Entwicklungsumgebung
Eine Geschichte zum Erstellen einer IDE-Umgebung mit WinPython unter einem alten Windows-Betriebssystem.
Cross-Compilieren von Raspberry Pi und Erstellen einer Remote-Debug-Entwicklungsumgebung mit VS Code
Deaktivieren Sie die Optimierungsoptionen in der Google App Engine Go-Entwicklungsumgebung dev_appserver.py
Erstellen Sie eine TensorFlow-Entwicklungsumgebung auf Amazon EC2 mit Befehlskopie
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
Erstellen einer Django-Entwicklungsumgebung mit pyenv-virtualenv auf einem Mac
Empfehlung zum Erstellen einer tragbaren Python-Umgebung mit conda
Erstellen Sie eine lokale Entwicklungsumgebung für Laravel6.X auf Ihrem Mac
Reparieren einer kaputten Entwicklungsumgebung mit Mavericks-Migration (Hinweis)
Bis Sie die Flask-Anwendung vorerst in Google App Engine ausführen
Erstellen Sie eine komfortable Python 3 (Anaconda) -Entwicklungsumgebung mit Windows
Erstellen Sie eine Python-Entwicklungsumgebung mit Vagrant + Ansible + Fabric
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
(Anfänger) Grundlegende Verwendung des Datenspeichers von Google App Engine
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Experiment auf der Admin-Seite)