Usar Gradle y el complemento de App Engine

Gradle es una herramienta de automatización de compilaciones de código abierto centrada en la flexibilidad y el rendimiento. App Engine proporciona un complemento de Gradle que puedes usar para compilar y desplegar tu aplicación en App Engine. En el ejemplo de código se muestra cómo configurar el archivo build.gradle para añadir tareas de Gradle de App Engine, repositorios de Maven, el complemento Gradle de App Engine y dependencias.

Antes de empezar

  1. Instalar Java

  2. Instalar Gradle

  3. Instalar git

  4. Si aún no lo has hecho, sigue los pasos que se indican en esta guía para descargar la CLI de gcloud, crear tu proyecto Google Cloud e inicializar tu aplicación App Engine.

  5. Instala el componente app-engine-java de gcloud CLI:

    gcloud components install app-engine-java
    

Crear un proyecto de Gradle

Puedes crear un proyecto de Gradle desde cero con la shell. También puedes descargar, ejecutar de forma local y desplegar el proyecto Hello World para probar el complemento.

Para crear un proyecto, sigue estos pasos:

  1. Crea un directorio y ve a él.

  2. Para inicializar un proyecto nuevo, sigue estos pasos:

    1. Ejecuta gradle init:

      gradle init --type java-application
      

      Se te pedirá que respondas a las siguientes preguntas:

      • Introduce la versión de Java de destino (mínimo: 7; valor predeterminado: 21): 21
      • Selecciona la estructura de la aplicación: 1 para el proyecto de aplicación única
      • Selecciona el DSL de la secuencia de comandos de compilación: 2 (para Groovy).
      • Selecciona el marco de pruebas: 1 (para JUnit 4).
      • Generar compilación con nuevas APIs y comportamientos: no
    2. Crea la carpeta WEB-INF:

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

      mkdir -p app/src/main/appengine
      
  3. Elimina los archivos de stub generados por gradle init:

    rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
    
  4. Añade lo siguiente al archivo app/build.gradle para añadir tareas de Gradle de App Engine, repositorios Maven, el complemento Gradle de App Engine, dependencias y configuración de tareas:

    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. También debes añadir los siguientes archivos a tu proyecto mediante un editor de texto o un entorno de desarrollo integrado (IDE):

Consulta la sección Configurar el entorno de desarrollo para obtener una descripción general de un proyecto de Java App Engine.

Probar una aplicación con el servidor de desarrollo

  1. Para acceder a los recursos de Google desde tu proyecto cuando se ejecute de forma local, define las credenciales predeterminadas de la aplicación ejecutando el siguiente comando:

    gcloud auth application-default login
    
  2. Cambia a la raíz del directorio de tu aplicación.

  3. Durante la fase de desarrollo, puedes ejecutar y probar tu aplicación en cualquier momento en el servidor de desarrollo invocando Gradle:

    gradle jettyRun
    

    También puedes ejecutar Gradle sin instalarlo usando el envoltorio de Gradle.

  4. Espera a que se inicie el servidor. El servidor se inicia con tu aplicación en ejecución cuando ves un mensaje similar a este:

    :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. Verás tu aplicación en http://localhost:8080.

Para obtener más información sobre el complemento Gretty, consulta Configuración de Gretty y Tareas de Gretty.

Desplegar una aplicación

Para desplegar tu aplicación, sigue estos pasos:

gradle appengineDeploy

La tarea appengineDeploy y todas las demás tareas de Gradle tienen propiedades asociadas que puedes usar. Para ver una lista completa de tareas y propiedades, consulta el artículo Tareas y propiedades de Gradle de App Engine.

Usar el envoltorio de Gradle

Gradle proporciona un mecanismo para descargar y ejecutar la versión necesaria de Gradle sin necesidad de instalarla:

Linux/macOS

  1. Cambia al directorio del código de ejemplo.

  2. Ejecuta gradlew:

    ./gradlew jettyRun
    

Windows

  1. Cambia al directorio del código de ejemplo.

  2. Ejecuta gradlew:

    ./gradlew.bat jettyRun
    

Puedes consultar más información sobre Gradle en Tareas y propiedades de Gradle de App Engine.

Siguientes pasos