Tareas y propiedades del complemento App Engine Gradle

Después de agregar el complemento de App Engine a tu proyecto, usa las siguientes tareas de Gradle específicas de App Engine para las aplicaciones que se ejecutan en el entorno estándar de App Engine:

Tarea Descripción
tasks Muestra la información de ayuda en las tareas instaladas.
appengineCloudSdkLogin Establece el estado del SDK de Cloud global para la cuenta.
appengineDeploy Habilita a etapas y, luego, implementa una aplicación en App Engine.
appengineDeployAll Habilita a etapas y también implementa una aplicación con todas sus configuraciones yaml válidas de manera simultánea en App Engine.
appengineDeployCron Almacena en etapa intermedia y, luego, implementa un archivo de configuración cron.yaml en App Engine.
appengineDeployDispatch Almacena en etapa intermedia y, luego, implementa un archivo de configuración dispatch.yaml en App Engine.
appengineDeployDos Almacena en etapa intermedia y, luego, implementa un archivo de configuración dos.yaml en App Engine.
appengineDeployIndex Habilita por etapas y, luego, implementa un archivo de configuración index.yaml en App Engine.
appengineDeployQueue Almacena en etapa intermedia y, luego, implementa un archivo de configuración queue.yaml en App Engine.
appengineRun Ejecuta el servidor de desarrollo de App Engine. Cuando el servidor se está ejecutando, comprueba continuamente si appengine-web.xml cambió. Si es así, el servidor vuelve a cargar la aplicación. No es necesario detener y reiniciar la aplicación debido a cambios en appengine-web.xml.
appengineStage Genera un directorio de aplicaciones para la implementación.
appengineStart Comienza a ejecutar el servidor de desarrollador de App Engine de forma asíncrona y, luego, regresa a la línea de comandos. Cuando se ejecuta este objetivo, el comportamiento es el mismo que el objetivo de ejecución, con la diferencia de que Gradle continúa procesando tareas y se cierra después de que el servidor esté en funcionamiento.
appengineStop Detiene un servidor de desarrollo web de App Engine en ejecución.
explodeWar Expande el archivo WAR en el directorio de compilación.

Para ver la lista completa de tareas, usa:

gradle tasks

Para obtener más información sobre cómo configurar y usar Gradle, consulta Usa App Engine para Gradle.

Propiedades de tareas

El contenido del archivo gradle.build es un conjunto de reglas para describir tu compilación. Está escrito en un lenguaje específico del dominio para describir compilaciones, basado en el lenguaje Groovy.

Cada tarea tiene propiedades asociadas que puedes usar. Las propiedades se detallan más adelante. Puedes especificar estas propiedades en el archivo gradle.build mediante una tarea de cierre de configuración y propiedades.

En el siguiente ejemplo:

  • El cierre de la configuración para el complemento es appengine.
  • La tarea es run.
  • La propiedad, port, se establece en 8080.
appengine {  // App Engine tasks configuration
  run {      // local (dev_appserver) configuration (standard environments only)
    port = 8080                 // default
  }

  deploy {   // deploy configuration
    stopPreviousVersion = true  // default - stop the current version
    promote = true              // default - & make this the current version
  }
}

Si solo tienes que especificar algunas propiedades, puedes establecerlas en una sola línea:

  appengine.run.port = 8888

Consulta las siguientes secciones si deseas ver una lista de las propiedades que están disponibles para cada tarea.

appengineStage

task(stage)

Genera un directorio de aplicaciones para la implementación. La tarea appengineDeploy usa appengineStage.

Puedes usar las propiedades siguientes:

PropiedadDescripción
compileEncoding La codificación de caracteres a usar cuando se compilen las JSP. Solo aplica a las apps que se ejecutan en el entorno estándar de App Engine.
deleteJsps Borra los archivos JSP de origen después de la compilación. Solo aplica a las apps que se ejecutan en el entorno estándar de App Engine.
disableJarJsps Inhabilita la adición de clases generadas por JSP. Solo aplica a las apps que se ejecutan en el entorno estándar de App Engine.
disableUpdateCheck Inhabilita la búsqueda de actualizaciones del SDK de Cloud.
enableJarClasses Convierte WEB-INF/classes content en Jar. Solo aplica a las apps que se ejecutan en el entorno estándar de App Engine.
useMtimeFileWatcher Usa el sondeo de mtime para detectar cambios en el código fuente. Es útil para modificar código de una máquina remota con un sistema de archivos distribuido.
enableJarSplitting Divide los archivos JAR mayores a 10 MB en fragmentos más pequeños. Solo se aplica al entorno estándar de App Engine.
enableQuickstart Usa la guía de inicio rápido de Eclipse Jetty para procesar las anotaciones de servlet. Solo se aplica al entorno estándar de App Engine.
jarSplittingExcludes Se excluyen los archivos que coincidan con la lista de SUFIJOS separados por comas de todos los archivos JAR. Solo se aplica a las aplicaciones que se ejecutan en el entorno estándar de App Engine.
sourceDirectory Obligatorio La ubicación de los archivos compilados de la aplicación web o la explosión de WAR. Se usa como fuente para la etapa de pruebas. Solo se aplica al entorno estándar de App Engine. El puerto predeterminado es build/exploded-${gradle-module-name}.
stagingDirectory Obligatorio El directorio donde la aplicación se divide en etapas. El puerto predeterminado es build/staged-app.

appengineRun

task(run)

Ejecuta el servidor web de desarrollador de App Engine. Cuando el servidor se está ejecutando, comprueba continuamente si appengine-web.xml cambió. Si es así, el servidor vuelve a cargar la aplicación. Esto significa que no necesitas detener y reiniciar tu aplicación debido a los cambios en appengine-web.xml.

Puedes usar las propiedades siguientes, algunas de las cuales corresponden a las marcas de líneas de comandos del servidor de desarrollo local:

Propiedad Descripción
environment Un mapa de las variables del entorno para enviar al servidor de desarrollo local. Ejemplo: [key1: "value1", key2: "value2"]
jvmFlags Argumentos adicionales para pasar al comando java cuando se inicia una instancia de la app. Se puede especificar más de una vez. Ejemplo: -Xmx1024m -Xms256m
host Nombre del host al que se deben vincular los servicios de aplicación. El puerto predeterminado es localhost.
port Puerto más bajo al que se deben vincular los servicios de aplicación. El puerto predeterminado es 8080.
serverVersion La versión del servidor a iniciar. Las opciones son “1” y “2-alpha”. La versión predeterminada es “1”.
services Obligatorio Rutas a un directorio que contiene un directorio que contiene WEB-INF/web.xml. El valor predeterminado es build/exploded-app.
startSuccessTimeout La cantidad de tiempo en segundos que hay que esperar para que inicie el Dev App Server en segundo plano (cuando se usa appengineStart).

appengineDeploy

task(deploy)

Habilita a etapas y, luego, implementa una app en App Engine.

Propiedad Descripción
appEngineDirectory Ubicación de los archivos de configuración .yaml (cron, index, etc.) desde los que se implementarán las implementaciones específicas de la configuración (appengineDeployCron, etc.). Para las aplicaciones estándar, los archivos de configuración .xml se convierten durante la etapa de pruebas en .yaml y se colocan en build/staged-app/WEB-INF/appengine-generated.
bucket El depósito de Google Cloud Storage usado para dividir en etapas los archivos asociados a la implementación. Si este argumento no se especifica, se utiliza el depósito predeterminado de la aplicación.
imageUrl Implementa con una imagen específica de Docker. La URL de Docker debe ser uno de los nombres de host válidos de Google Container Registry.
projectId El ID del proyecto de Google Cloud Platform para usar en esta invocación. Debes especificar un projectId, o puedes configurar GCLOUD_CONFIG para que use el conjunto de proyectos de tu estado de configuración de gcloud.
promote Asciende la versión implementada para que reciba todo el tráfico. El valor predeterminado es True.
server El servidor de App Engine para conectarse. En general, no es necesario cambiar este valor.
stopPreviousVersion Cuando se implementa una versión nueva que recibe todo el tráfico, detiene la versión que se ejecutaba antes.
version La versión de la app que esta implementación creará o reemplazará. Si no especificas una versión, se generará una automáticamente.

Propiedades globales

PropiedadDescripción
tools.cloudSdkHome Propiedad opcional para configurar la ubicación del SDK de Cloud. Si esta propiedad no se especifica, el complemento descarga de forma automática el SDK de Cloud.
tools.cloudSdkVersion Parámetro opcional para especificar la versión deseada del SDK de Cloud.