Objetivos y parámetros del complemento de App Engine para Maven (basado en el SDK de Cloud)

Estos objetivos de Maven específicos de App Engine estarán disponibles después de agregar el complemento de App Engine para Maven basado en el SDK de Cloud a tu proyecto:

Objetivo Descripción
appengine:cloudSdkLogin Establece el estado del SDK de Cloud global para la cuenta.
appengine:deploy Habilita a etapas y, luego, implementa una aplicación en App Engine.
appengine:deployAll Habilita a etapas y también implementa una aplicación con todas sus configuraciones yaml válidas de manera simultánea en App Engine.
appengine:deployCron Habilita a etapas y, luego, implementa un archivo de configuración cron.yaml en App Engine.
appengine:deployDispatch Habilita a etapas y, luego, implementa un archivo de configuración dispatch.yaml en App Engine.
appengine:deployDos Habilita a etapas y, luego, implementa un archivo de configuración dos.yaml en App Engine.
appengine:deployIndex Habilita a etapas y luego implementa un archivo de configuración index.yaml en App Engine.
appengine:deployQueue Habilita a etapas y, luego, implementa un archivo de configuración queue.yaml en App Engine.
appengine:help Muestra la información de ayuda sobre el complemento de App Engine para Maven.
appengine:run Ejecuta el servidor de desarrollo de App Engine. Cuando el servidor se está ejecutando, comprueba de forma continua si appengine-web.xml cambió. Si es así, el servidor vuelve a cargar la aplicación. No necesitas detener y reiniciar tu aplicación debido a los cambios en appengine-web.xml.
appengine:stage Genera un directorio de aplicaciones para la implementación.
appengine:start Comienza a ejecutar el devserver 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 run, con la diferencia de que Maven continúa procesando objetivos y se cierra después de que el servidor esté en funcionamiento.
appengine:stop Detiene un servidor de desarrollo web de App Engine en ejecución.

Para obtener más información sobre cómo configurar y usar Maven, consulta Usa Maven.

Los usuarios de la versión del complemento Maven basado en el SDK de App Engine en Java pueden encontrar una asignación de los objetivos del complemento anterior para los comandos de gcloud en la documentación de referencia relacionada.

Parámetros de los objetivos

Cada objetivo tiene parámetros asociados que puedes usar. Además, puedes especificar esta configuración en el archivo pom.xml o en la línea de comandos.

Para definir esta configuración en el archivo pom.xml, agrega el nombre del parámetro a la sección <configuration>.

En el ejemplo siguiente se dividen los archivos JAR, se detiene la versión que se ejecutó antes y se especifica la ruta del SDK de Cloud:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.0.0</version>
     <configuration>
       <stage.enableJarSplitting>true</stage.enableJarSplitting>
       <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
       <cloudSdkPath>/usr/foo/path/to/cloudsdk</cloudSdkPath>
     </configuration>
  </plugin>
</plugins>

Como alternativa, para definir esta configuración en la línea de comandos, sigue el patrón -D[USER_PROPERTY]=[PARAMETER_VALUE].

En el ejemplo siguiente se especifica un directorio para habilitar tu aplicación a etapas:

mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]

Consulta las siguientes secciones si deseas obtener una lista de los parámetros que están disponibles para cada objetivo.

Si deseas omitir las ejecuciones de appengine:goal, establece el parámetro skip en verdadero.

appengine:deploy

Habilita a etapas y, luego, implementa una aplicación en App Engine.

Puedes usar los siguientes parámetros, algunos de los cuales corresponden a las marcas de línea de comandos gcloud app deploy:

Parámetro Descripción Configuración de complementos Configuración de la línea de comandos
appEngineDirectory Ubicación de los archivos de configuración .yaml (cron, índice, etc.) desde los que se implementarán las distintas implementaciones con una configuración específica (appengineDeployCron, etc.). Para aplicaciones estándar, tus archivos de configuración .xml se convierten en .yaml durante la etapa de pruebas y se ubican en target/appengine-staging/WEB-INF/appengine-generated. deploy.appEngineDirectory app.deploy.appEngineDirectory
bucket El depósito de Google Cloud Storage que se usa para dividir habilitar a etapas los archivos asociados a la implementación. Si este argumento no se especifica, se utiliza el depósito predeterminado de la aplicación. deploy.bucket app.deploy.bucket
cloudSdkHome Parámetro opcional para configurar la ubicación del SDK de Cloud. Si esta propiedad no se especifica, el complemento descarga automáticamente el SDK de Cloud. cloudSdkHome cloudSdkHome
cloudSdkVersion Parámetro opcional para especificar la versión deseada del SDK de Cloud. cloudSdkVersion cloudSdkVersion
compileEncoding La codificación de caracteres que se usará cuando se compilen los JSP. Solo se aplica al entorno estándar de App Engine. stage.compileEncoding app.stage.compileEncoding
deleteJsps Borra los archivos JSP de origen después de la compilación. Solo se aplica al entorno estándar de App Engine. stage.deleteJsps app.stage.deleteJsps
disableJarJsps Inhabilita la adición de clases generadas por JSP. Solo se aplica al entorno estándar de App Engine. stage.disableJarJsps app.stage.disableJarJsps
dockerBuild Realiza una compilación alojada (remote) o local (local) de Docker. Para realizar una compilación local, el entorno local de Docker debe estar configurado de forma correcta. El valor predeterminado es una compilación alojada. deploy.dockerBuild app.deploy.dockerBuild
dockerfile La ubicación del Dockerfile para las aplicaciones de App Engine Standard que se ejecuten en el entorno flexible. Solo se aplica al entorno estándar de App Engine. stage.dockerfile app.stage.dockerfile
enableJarClasses Convierte en JAR el contenido de WEB-INF/classes. Solo se aplica al entorno estándar de App Engine. stage.enableJarClasses app.stage.enableJarClasses
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. stage.enableJarSplitting app.stage.enableJarSplitting
enableQuickstart Usa el inicio rápido de Jetty para procesar las anotaciones de servlet. Solo se aplica al entorno estándar de App Engine. stage.enableQuickstart app.stage.enableQuickstart
force Fuerza la implementación para anular cualquier implementación en curso anterior a esta versión. deploy.force app.deploy.force
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. deploy.imageUrl app.deploy.imageUrl
jarSplittingExcludes Se excluyen los archivos que coincidan con la lista de SUFIJOS separados por comas de todos los archivos JAR. Solo se aplica al entorno estándar de App Engine. stage.jarSplittingExcludes app.stage.jarSplittingExcludes
projectId El nombre del proyecto de Google Cloud Platform para usar en esta invocación. Debes especificar un projectId, o puedes configurar GCLOUD_CONFIG para usar el conjunto de proyectos de tu estado de configuración de gcloud. deploy.projectId app.deploy.projectId
promote Actualiza la versión implementada para que reciba todo el tráfico. El puerto predeterminado es True. deploy.promote app.deploy.promote
server El servidor de App Engine para conectarse. En general, no es necesario cambiar este valor. deploy.server app.deploy.server
sourceDirectory Obligatorio. La ubicación de los archivos de aplicación web compilados o los archivos WAR expandidos. Esto se usa como la fuente para la etapa de pruebas. Solo se aplica al entorno estándar de App Engine. El directorio predeterminado es ${project.build.directory}/${project.build.finalName}. stage.sourceDirectory app.stage.sourceDirectory
stagingDirectory Obligatorio. El directorio en el que la aplicación se habilita a etapas. El puerto predeterminado es ${project.build.directory}/appengine-staging. stage.stagingDirectory app.stage.stagingDirectory
stopPreviousVersion Cuando se implementa una versión nueva que recibe todo el tráfico, detiene la versión que se ejecutaba antes. deploy.stopPreviousVersion app.deploy.stopPreviousVersion
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. deploy.version app.deploy.version

appengine:help

Muestra la información de ayuda sobre el complemento de App Engine para Maven.

Para mostrar los detalles de los parámetros, realiza la siguiente llamada:

mvn appengine:help -Ddetail=true -Dgoal=[GOAL_NAME]

Puedes usar los siguientes parámetros:

Parámetro Descripción Propiedad del usuario
detail Si es verdadero, muestra todas las propiedades configurables para cada objetivo. El puerto predeterminado es False. detail
goal El nombre del objetivo para el cual se muestra el contenido de ayuda. Si no se especifica, se muestran todos los objetivos. goal
indentSize La cantidad de espacios por nivel de sangría. Debe ser un número positivo. La ruta predeterminada es 2. indentSize
lineLength La longitud máxima de una línea de visualización. Debe ser un número positivo. La ruta predeterminada es 80. lineLength

appengine:run

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

Puedes usar los siguientes parámetros, algunos de los cuales corresponden a las marcas de línea de comandos del servidor de desarrollo local:

Propiedad Descripción Configuración de complementos Configuración de la línea de comandos
environment Un mapa de las variables del entorno para enviar al servidor de desarrollo local. Ejemplo:

<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Argumentos adicionales que se pasan al comando java cuando se inicia una instancia de la app. Se puede especificar más de una vez. Ejemplo:

<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Nombre del host al que se deben vincular los servicios de aplicación. El nombre predeterminado es localhost. devserver.host app.devserver.host
port Puerto más bajo al que se deben vincular los servicios de aplicación. El puerto predeterminado es 8080. devserver.port app.devserver.port
serverVersion La versión del servidor a iniciar. Las opciones son “1” y “2-alpha”. La versión predeterminada es “1”. devserver.serverVersion app.devserver.serverVersion
services Obligatorio. Las rutas de acceso a un directorio que contiene WEB-INF/web.xml. La ruta predeterminada es build/exploded-app. devserver.services app.devserver.services

appengine:stage

Genera un directorio de aplicaciones para la implementación.

Puedes usar los siguientes parámetros:

Parámetro Descripción Configuración de complementos Configuración de la línea de comandos
cloudSdkHome Parámetro opcional para configurar la ubicación del SDK de Cloud. Si esta propiedad no se especifica, el complemento descarga automáticamente el SDK de Cloud. cloudSdkHome cloudSdkHome
cloudSdkVersion Parámetro opcional para especificar la versión deseada del SDK de Cloud. cloudSdkVersion cloudSdkVersion
compileEncoding La codificación de caracteres que se usará cuando se compilen los JSP. Solo se aplica al entorno estándar de App Engine. stage.compileEncoding app.stage.compileEncoding
deleteJsps Borra los archivos JSP de origen después de la compilación. Solo se aplica al entorno estándar de App Engine. stage.deleteJsps app.stage.deleteJsps
dockerfile La ubicación del Dockerfile para las aplicaciones del entorno estándar de App Engine que se ejecutan en el entorno flexible. Solo se aplica al entorno estándar de App Engine. stage.dockerfile app.stage.dockerfile
enableJarClasses Convierte en JAR el contenido de WEB-INF/classes. Solo se aplica al entorno estándar de App Engine. stage.enableJarClasses app.stage.enableJarClasses
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. stage.enableJarSplitting app.stage.enableJarSplitting
enableQuickstart Usa el inicio rápido de Jetty para procesar las anotaciones de servlet. Solo se aplica al entorno estándar de App Engine. stage.enableQuickstart app.stage.enableQuickstart
jarSplittingExcludes Se excluyen los archivos que coincidan con la lista de SUFIJOS separados por comas de todos los archivos JAR. Solo se aplica al entorno estándar de App Engine. stage.jarSplittingExcludes app.stage.jarSplittingExcludes
sourceDirectory Obligatorio. La ubicación de los archivos de aplicación web compilados o los archivos WAR expandidos. Esto se usa como la fuente para la etapa de pruebas. Solo se aplica al entorno estándar de App Engine. El directorio predeterminado es ${project.build.directory}/${project.build.finalName}. stage.sourceDirectory app.stage.sourceDirectory
stagingDirectory Obligatorio. El directorio donde la aplicación se divide en etapas. El nombre predeterminado es ${project.build.directory}/appengine-staging. stage.stagingDirectory app.stage.stagingDirectory

appengine:start

Comienza a ejecutar el servidor web 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 run, con la diferencia de que Maven continúa procesando objetivos y se cierra después de que el servidor esté en funcionamiento.

Puedes usar los siguientes parámetros:

Propiedad Descripción Configuración de complementos Configuración de la línea de comandos
environment Un mapa de las variables del entorno para enviar al servidor de desarrollo local. Ejemplo:

<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Argumentos adicionales que se pasan al comando java cuando se inicia una instancia de la app. Se puede especificar más de una vez. Ejemplo:

<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Nombre del host al que se deben vincular los servicios de aplicación. El nombre predeterminado es localhost. devserver.host app.devserver.host
port Puerto más bajo al que se deben vincular los servicios de aplicación. El puerto predeterminado es 8080. devserver.port app.devserver.port
serverVersion La versión del servidor a iniciar. Las opciones son “1” y “2-alpha”. La versión predeterminada es “1”. devserver.serverVersion app.devserver.serverVersion
services Obligatorio. Las rutas de acceso a un directorio que contiene WEB-INF/web.xml. La ruta predeterminada es build/exploded-app. devserver.services app.devserver.services
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). devserver.startSuccessTimeout app.devserver.startSuccessTimeout

appengine:stop

Detiene un servidor de desarrollo web de App Engine en ejecución.

Puedes usar los siguientes parámetros:

Parámetro Descripción Configuración de complementos Configuración de la línea de comandos
host Nombre del host al que se debe vincular el servidor de administración. El nombre predeterminado es localhost. devserver.adminHost app.devserver.adminHost
port El puerto al que se debe vincular el servidor de administración. El puerto predeterminado es 8000. devserver.adminPort app.devserver.adminPort
cloudSdkHome Parámetro opcional para configurar la ubicación del SDK de Cloud. Si esta propiedad no se especifica, el complemento descarga automáticamente el SDK de Cloud. cloudSdkHome cloudSdkHome

Soluciona errores de carga

Si usas el objetivo deploy, tu intento de implementación podría tener errores con un mensaje similar a este: 404 Not Found This application does not exist (app_id=u'your-app-ID'). Este error se producirá si tienes varias Cuentas de Google y usas la cuenta incorrecta para realizar la actualización.

Para resolver este problema, intenta cambiar el usuario con gcloud auth login.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java 8