Gradle und das App Engine-Plug-in verwenden

Gradle ist ein Open-Source-Tool zur Build-Automatisierung, das auf Flexibilität und Leistung ausgerichtet ist. App Engine bietet ein Gradle-Plug-in, mit dem Sie Ihre Anwendung erstellen und in App Engine bereitstellen können. In den Codebeispielen in diesem Leitfaden wird Gradle Version 8 verwendet.

Das Codebeispiel zeigt, wie Sie die Datei build.gradle konfigurieren, um App Engine Gradle-Aufgaben, Maven-Repositories, das App Engine Gradle-Plug-in und Abhängigkeiten für Java 8 hinzuzufügen. Weitere Informationen zur Verwendung neuerer Versionen für Java Version 11 und höher finden Sie unter Java-Laufzeit.

Hinweis

  1. Java installieren

  2. Gradle installieren

  3. Git installieren

  4. Führen Sie, falls noch nicht erfolgt, die Schritte in der Anleitung aus, um die gcloud CLI herunterzuladen, Ihr Google Cloud-Projekt zu erstellen und Ihre App Engine-Anwendung zu initialisieren.

  5. Installieren Sie die app-engine-java-Komponente der gcloud CLI:

    gcloud components install app-engine-java
    

Erstellen Sie ein neues Gradle-Projekt.

Mithilfe der Shell können Sie ein Gradle-Projekt neu erstellen. Falls Sie das Plug-in ausprobieren möchten, können Sie auch das „Hello World“-Projekt herunterladen, lokal ausführen und bereitstellen.

So erstellen Sie ein neues Projekt:

  1. Erstellen Sie ein neues Verzeichnis und gehen Sie zu diesem Verzeichnis.

  2. So initialisieren Sie ein neues Projekt:

    1. Führen Sie gradle init aus.

      gradle init --type java-application
      

      Sie werden gebeten, folgende Fragen zu beantworten:

      • Geben Sie die Ziel-Java-Version ein (Mind. 7, Standard: 21): 21
      • Anwendungsstruktur auswählen: „1“ für ein Projekt mit einer einzelnen Anwendung
      • Build-Script-DSL auswählen: 2 (für Groovy)
      • Test-Framework auswählen: 1 (für JUnit 4)
      • Build mit neuen APIs und Verhalten generieren: nein
    2. Erstellen Sie den Ordner WEB-INF:

      mkdir -p app/src/main/webapp/WEB-INF
      
    3. Erstellen Sie den Ordner appengine:

      mkdir -p app/src/main/appengine
      
  3. Entfernen Sie die von gradle init generierten Stub-Dateien:

    rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
    
  4. Fügen Sie Ihrer app/build.gradle-Datei Folgendes hinzu, um App Engine-Gradle-Aufgaben, Maven-Repositories, das App Engine-Gradle-Plug-in, Abhängigkeiten und die Aufgabenkonfiguration hinzuzufügen:

    buildscript {      // Configuration for building
      repositories {
        jcenter()      // Bintray's repository - a fast Maven Central mirror & more
        mavenCentral()
      }
      dependencies {
        classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.5.0'
        classpath 'org.akhikhl.gretty:gretty:+'
      }
    }
    
    repositories {   // repositories for Jar's you access in your code
      jcenter()
      mavenCentral()
    }
    
    apply plugin: 'java'
    apply plugin: 'war'
    apply plugin: 'org.akhikhl.gretty'
    apply plugin: 'com.google.cloud.tools.appengine'
    
    dependencies {
      providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
      providedCompile 'com.google.appengine:appengine:+'
    // Add your dependencies here.
    
    }
    
    gretty {
        servletContainer = 'jetty9'  // What App Engine Flexible uses
    }
    
      appengine {
        deploy {   // deploy configuration
          stopPreviousVersion = true  // default - stop the current version
          promote = true              // default - & make this the current version
        }
      }
    
    group = 'com.example.appengine'   // Generated output GroupId
    version = '1.0-SNAPSHOT'          // Version in generated output
    
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
  5. Fügen Sie Ihrem Projekt außerdem mithilfe eines Texteditors oder einer integrierten Entwicklungsumgebung (IDE) folgende Dateien hinzu:

Unter Entwicklungsumgebung einrichten finden Sie eine Übersicht über ein Java App Engine-Projekt.

Anwendung mit dem Entwicklungsserver testen

  1. Wenn Sie bei der lokalen Ausführung des Projekts auf Google-Ressourcen zugreifen möchten, legen Sie die Standardanmeldedaten für die Anwendung fest. Dazu führen Sie Folgendes aus:

    gcloud auth application-default login
    
  2. Wechseln Sie zum Stammverzeichnis Ihrer Anwendung.

  3. Sie können die Anwendung in der Entwicklungsphase jederzeit auf dem Entwicklungsserver ausführen und testen, indem Sie Gradle aufrufen.

    gradle jettyRun
    

    Die Ausführung von Gradle ist auch ohne die Installation durch den Gradle-Wrapper möglich.

  4. Warten Sie, bis der Server gestartet wurde. Der Server wird während der Ausführung Ihrer Anwendung gestartet, wenn eine Nachricht wie diese angezeigt wird:

    :prepareInplaceWebAppFolder
    :createInplaceWebAppFolder
    :compileJava
    :processResources UP-TO-DATE
    :classes
    :prepareInplaceWebAppClasses
    :prepareInplaceWebApp
    :jettyRun
    17:40:05 INFO  Jetty 9.2.15.v20160210 started and listening on port 8080
    17:40:05 INFO   runs at:
    17:40:05 INFO    http://localhost:8080/
    
  5. Ihre Anwendung läuft unter http://localhost:8080.

Weitere Informationen zum Gretty-Plug-in finden Sie unter Gretty-Konfiguration und Gretty-Aufgaben.

Anwendung bereitstellen

So stellen Sie Ihre Anwendung bereit:

gradle appengineDeploy

Die Aufgabe appengineDeploy und alle anderen Gradle-Aufgaben haben zugehörige Attribute, die Sie verwenden können. Eine vollständige Liste der Aufgaben und Attribute finden Sie unter App Engine-Gradle-Plug-in – Aufgaben und Attribute.

Gradle-Wrapper verwenden

Gradle bietet einen Mechanismus, um die erforderliche Version von Gradle ohne Installation herunterzuladen und auszuführen :

Linux/macOS

  1. Öffnen Sie das Verzeichnis mit dem Beispielcode.

  2. Führen Sie gradlew aus:

    ./gradlew jettyRun
    

Windows

  1. Öffnen Sie das Verzeichnis mit dem Beispielcode.

  2. Führen Sie gradlew aus:

    ./gradlew.bat jettyRun
    

Weitere Informationen zu Gradle finden Sie unter App Engine-Gradle-Plug-in – Aufgaben und Attribute.

Nächste Schritte