Usar Apache Maven y el complemento de App Engine

Apache Maven es una herramienta de compilación automática para Java.

App Engine proporciona un complemento de Maven que puedes usar para compilar e implementar tu app en App Engine. El complemento no es compatible con los proyectos de archivos de aplicaciones empresariales (EAR).

Antes de comenzar

  1. Determina si Maven está instalado y qué versión tienes mediante la ejecución del siguiente comando:

    mvn -v
    

    Si Maven está instalado, se mostrará una string larga de información que comienza con Apache Maven y sigue con un número de versión como 3.5.

  2. Si no tienes instalado Maven 3.5 o una versión más reciente, haz lo siguiente:

    1. Descarga Maven 3.5 o una versión más reciente.
    2. Instala Maven 3.5 o una versión más reciente.
  3. Si aún no lo hiciste, sigue los pasos que se indican aquí para descargar la CLI de gcloud, crear tu proyecto de Google Cloud y, además, inicializar tu aplicación de App Engine.

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

    gcloud components install app-engine-java
    

Agrega el complemento de Maven de App Engine

Para usar el complemento de Maven de App Engine, agrega las siguientes líneas a la sección plugins en el archivo pom.xml del proyecto:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.7.0</version>
   </plugin>
   <plugin>
     <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <version>9.3.7.v20160115</version>
   </plugin>
</plugins>
El complemento de App Engine incluye el complemento de Jetty Maven, que puedes usar para probar la aplicación con rapidez sin crear un archivo WAR.

Usa el complemento de Jetty Maven para probar tu app de forma local

Durante la fase de desarrollo, puedes ejecutar y probar tu app en cualquier momento en el servidor de desarrollo si invocas el complemento Jetty Maven.

Para ejecutar tu aplicación en el servidor de desarrollo:

  1. Si aún no lo hiciste, compila tu app:

    mvn package
    
  2. Invoca a Maven para cambiar el directorio al nivel superior del proyecto (por ejemplo, myapp) y ejecutar la app:

    mvn jetty:run
    
  3. Espera a que el servidor se inicie y usa el navegador para visitar http://localhost:8080/ y acceder a la app.

  4. Presiona Control+C para cerrar la app y el servidor de desarrollo.

Compila e implementa la app

Después de agregar el complemento de Maven de App Engine al archivo pom.xml del proyecto, puedes usar el siguiente comando a fin de compilar la app:

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Si tu archivo pom.xml ya especifica tu ID del proyecto, no necesitas incluir la propiedad -Dapp.deploy.projectId en el comando que ejecutas.

El objetivo package compila y empaqueta la app. El objetivo appengine:deploy hace lo siguiente:

  1. Genera un ID de versión único para la versión nueva de la app.

  2. Implementa la versión nueva en App Engine.

  3. Enruta todo el tráfico a la versión nueva.

Cambia los valores predeterminados de la implementación

Puedes cambiar el comportamiento predeterminado de la implementación si pasas los parámetros en el comando appengine:deploy. Por ejemplo, con el siguiente comando, se implementa el servicio que se define en tu archivo pom.xml en un proyecto específico de Google Cloud, se asigna un ID de versión personalizado al servicio y se desactiva el enrutamiento de tráfico automático para la versión nueva:

mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.version=VERSION_ID -Dapp.deploy.promote=False

También puedes usar el comando appengine:deploy para implementar archivos de configuración, como cron.yaml, dispatch.yaml y index.yaml.

Para obtener más información, consulta la referencia de appengine:deploy.

¿Qué sigue?