Utilizzare Gradle e il plug-in App Engine

Gradle è uno strumento di automazione della build open source incentrato su flessibilità e prestazioni. App Engine fornisce un plug-in Gradle che puoi utilizzare per creare ed eseguire il deployment della tua app in App Engine.

Prima di iniziare

  1. Installa Java

  2. Installa Gradle

  3. Installa git

  4. Se non l'hai ancora fatto, segui i passaggi descritti in questa guida per scaricare gcloud CLI, creare il tuo Google Cloud progetto e inizializzare l'app App Engine.

  5. Installa il componente app-engine-java di gcloud CLI:

    gcloud components install app-engine-java
    

Crea un nuovo progetto Gradle

Puoi creare un nuovo progetto Gradle da zero utilizzando la shell. In alternativa, per provare il plug-in, puoi scaricare, eseguire localmente ed eseguire il deployment del progetto Hello World.

Per creare un nuovo progetto:

  1. Crea una nuova directory e vai al suo interno.

  2. Per inizializzare un nuovo progetto:

    1. Esegui gradle init:

      gradle init --type java-application
      

      Ti verrà chiesto di rispondere alle seguenti domande:

      • Enter target Java version (min: 7, default: 21): 21
      • Select application structure: 1 for Single application project
      • Select build script DSL: 2 (for Groovy)
      • Select test framework: 1 (for JUnit 4)
      • Generate build using new APIs and behavior: no
    2. Crea la cartella WEB-INF:

      mkdir -p app/src/main/webapp/WEB-INF
      
    3. Crea la cartella appengine:

      mkdir -p app/src/main/appengine
      
  3. Rimuovi i file stub generati da gradle init:

    rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
    
  4. Aggiungi quanto segue al file app/build.gradle per aggiungere attività Gradle di App Engine, repository Maven, il plug-in Gradle di App Engine, dipendenze e configurazione delle attività:

    apply plugin: 'java'
    apply plugin: 'war'
    
    buildscript {
        repositories {
            // gretty plugin is in Maven Central
            mavenCentral()
        }
        dependencies {
            classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.8.1'
            classpath 'org.gretty:gretty:4.1.5'
        }
    }
    apply plugin: 'org.gretty'
    apply plugin: 'com.google.cloud.tools.appengine'
    
    repositories {
        mavenCentral()
    }
    
    appengine {
        deploy {   // deploy configuration
            stopPreviousVersion = true  // default - stop the current version
            promote = true              // default - & make this the current version
            projectId = 'GCLOUD_CONFIG'
            version = 'GCLOUD_CONFIG'
        }
    }
    
    sourceSets {
        // In Gradle 8, the default location is app/src/java, which does not match
        // Maven's directory structure.
        main.java.srcDirs = ['src/main/java']
        main.resources.srcDirs = ['src/main/resources', 'src/main/webapp']
        test.java.srcDirs = ['src/test/java']
    }
    
    dependencies {
        implementation 'com.google.appengine:appengine-api-1.0-sdk:2.0.30'
        implementation 'jakarta.servlet:jakarta.servlet-api:6.1.0'
    
        // Test Dependencies
        testImplementation 'com.google.appengine:appengine-testing:2.0.30'
        testImplementation 'com.google.appengine:appengine-api-stubs:2.0.30'
        testImplementation 'com.google.appengine:appengine-tools-sdk:2.0.30'
    
        testImplementation 'com.google.truth:truth:1.1.5'
        testImplementation 'junit:junit:4.13.2'
        testImplementation 'org.mockito:mockito-core:4.11.0'
    }
  5. Devi anche aggiungere i seguenti file al progetto utilizzando un editor di testo o un ambiente di sviluppo integrato (IDE):

Per una panoramica di un progetto Java App Engine, consulta Configurare l'ambiente di sviluppo.

Testare l'applicazione con il server di sviluppo

  1. Per accedere alle risorse Google dal tuo progetto durante l'esecuzione in locale, imposta le credenziali predefinite dell'applicazione eseguendo:

    gcloud auth application-default login
    
  2. Passa alla directory principale dell'applicazione.

  3. Durante la fase di sviluppo, puoi eseguire e testare l'applicazione in qualsiasi momento nel server di sviluppo richiamando Gradle:

    gradle jettyRun
    

    In alternativa, puoi eseguire Gradle senza installarlo utilizzando il wrapper Gradle.

  4. Attendi l'avvio del server. Il server viene avviato con l'applicazione in esecuzione quando viene visualizzato un messaggio simile al seguente:

    :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. Visualizza l'app in esecuzione all'indirizzo http://localhost:8080.

Per saperne di più sul plug-in Gretty, consulta Configurazione di Gretty e Attività di Gretty.

Esegui il deployment dell'applicazione

Per eseguire il deployment dell'applicazione:

gradle appengineDeploy

L'attività appengineDeploy e tutte le altre attività Gradle hanno proprietà associate che puoi utilizzare. Per un elenco completo di attività e proprietà, consulta Attività e proprietà di Gradle di App Engine.

Utilizza il wrapper Gradle

Gradle fornisce un meccanismo per scaricare ed eseguire la versione richiesta di Gradle senza installazione:

Linux/macOS

  1. Passa alla directory del codice campione.

  2. Esegui gradlew:

    ./gradlew jettyRun
    

Windows

  1. Passa alla directory del codice campione.

  2. Esegui gradlew:

    ./gradlew.bat jettyRun
    

Ulteriori informazioni su Gradle sono disponibili in Attività e proprietà di Gradle di App Engine.

Passaggi successivi