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.
In diesem Artikel wird Folgendes als Entwicklungsumgebung angenommen.
--GAE verwendet eine Standardumgebung
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.
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>
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 Cloud Tools für Eclipse vom Eclipse Marketplace.
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.
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.
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.
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.
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.
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.