Puedes usar Gradle, un sistema de automatización de compilación flexible que es declarativo y se usa para automatizar la compilación, las pruebas, la publicación y la implementación. En esta página, se explica cómo usar Gradle con un proyecto de App Engine en el entorno estándar.
Antes de comenzar
Instala y configura los siguientes requisitos previos:
Instala Gradle (v3.4.1 o una versión más reciente)
Configura y valida tu proyecto de Google Cloud
Debes configurar tu proyecto de Google Cloud y, luego, instalar la CLI de gcloud:
Usa la consola de Google Cloud para crear y configurar tu proyecto de Google Cloud de la siguiente manera:
- Selecciona o crea un proyecto de Google Cloud nuevo.
- Sigue las indicaciones para asegurarte de que exista una aplicación de App Engine y de que la facturación esté habilitada:
- Si necesitas crear una aplicación de App Engine para tu proyecto, se te solicitará que selecciones la región donde quieres que se ubique tu aplicación de App Engine.
- Sigue las instrucciones para crear una cuenta de facturación nueva o seleccionar una existente.
- El Panel se abrirá después de crear la aplicación de App Engine y de habilitar la facturación de tu proyecto.
No es necesario que instales la CLI de gcloud porque el complemento instala el SDK de forma automática cuando es necesario.
Crea un proyecto de Gradle nuevo
Puedes crear un proyecto de Gradle nuevo desde cero mediante la shell. O bien, si quieres probar el complemento, puedes descargar, ejecutar de forma local y, luego, implementar el proyecto de Hello World.
Crea un directorio nuevo y, luego, ingrésalo.
Para inicializar un proyecto nuevo, sigue estos pasos:
gradle init --type java-library; mkdir -p src/main/webapp/WEB-INF; rm src/main/java/Library.java src/test/java/LibraryTest.java
Agrega el siguiente comando a tu archivo
build.gradle
para agregar las tareas y el complemento de App Engine Gradle, los repositorios de Maven, las dependencias y la configuración de las tareas.También debes agregar los siguientes archivos a tu proyecto mediante un editor de texto o un entorno de desarrollo integrado (IDE):
Consulta Archivos de configuración para obtener una descripción general de un proyecto de App Engine en Java.
Descarga la app de Hello World
Clona el repositorio de la app de muestra de Hello World en tu máquina local:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
De manera opcional, puedes descargar la muestra como un archivo zip y extraerla.
Ve al directorio que contiene el código de muestra:
cd java-docs-samples/appengine-java8/helloworld
Prueba tu aplicación con el servidor de desarrollo
Si deseas acceder a los recursos de Google desde tu proyecto cuando realizas una ejecución local, configura las credenciales predeterminadas de la aplicación mediante el siguiente comando:
gcloud auth application-default login
Cambia a la raíz del directorio de la aplicación.
Durante la fase de desarrollo, puedes invocar Gradle para ejecutar y probar tu aplicación en cualquier momento en el servidor de desarrollo:
gradle appengineRun
También tienes la opción de ejecutar Gradle sin instalarlo si usas el wrapper de Gradle.
Espera a que inicie el servidor. El servidor se inicia mientras la aplicación está en ejecución, y ves un mensaje como el siguiente:
:compileJava :processResources NO-SOURCE :classes :war :explodeWar :assemble :appengineRun 2018-06-05 22:50:46.231:INFO::main: Logging initialized @321ms Jun 06, 2018 2:50:49 AM com.google.appengine.tools.development.AbstractModule startup INFO: Module instance default is running at http://localhost:8080/ Jun 06, 2018 2:50:49 AM com.google.appengine.tools.development.AbstractModule startup INFO: The admin console is running at http://localhost:8080/_ah/admin Jun 05, 2018 10:50:49 PM com.google.appengine.tools.development.DevAppServerImpl doStart INFO: Dev App Server is now running
Visualiza cómo se ejecuta la app en
http://127.0.0.1:8080
.
Depura en el servidor de desarrollo
Para depurar una aplicación que se ejecuta de manera local, configura la propiedad jvmFlags
a fin de habilitar la depuración en la JVM subyacente, por ejemplo:
appengine {
run {
jvmFlags = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005']
}
}
Habilita la carga en caliente de la aplicación
Carga en caliente es la capacidad de actualizar una o más clases en una aplicación que se está ejecutando actualmente sin detener el entorno. Para habilitar la carga en caliente, sigue estos pasos:
Debes indicarle al servidor local que analice los cambios:
appengine { run { automaticRestart = true } }
Mientras tu app se está ejecutando, ejecuta la tarea
explodeWar
para copiar los cambios directamente en la aplicación explotada y propagar los cambios en la aplicación en ejecución.
Implementa tu aplicación
Para implementar tu aplicación ejecuta el siguiente comando:
gradle appengineDeploy
La tarea appengineDeploy
, al igual que las otras tareas de Gradle, tienen propiedades asociadas que puedes usar. Si deseas obtener una lista completa de tareas y propiedades, consulta Tareas y propiedades de Gradle para App Engine.
Usa el wrapper de Gradle
Gradle proporciona un mecanismo para descargar y ejecutar la versión necesaria de Gradle sin tener que instalarla:
Linux/macOS
./gradlew appengineRun
Windows
gradlew.bat appengineRun
Puedes encontrar información adicional sobre Gradle en Tareas y propiedades de Gradle para App Engine.
¿Qué sigue?
- Explora el código del complemento y, también, informa problemas en GitHub.
- Aprende a especificar propiedades de las tareas en Tareas y propiedades de Gradle para App Engine.