Objetivos y parámetros del complemento de App Engine Maven

Los siguientes objetivos de Maven específicos de App Engine estarán disponibles después de agregar el complemento de Maven de App Engine basado en la CLI de gcloud a tu proyecto:

Objetivo Descripción
appengine:cloudSdkLogin Establece el estado de la CLI gcloud global para la cuenta.
appengine:deploy Habilita a etapas e implementa una aplicación en App Engine.
appengine:deployAll Habilita a etapas e implementa una aplicación con todas sus opciones de configuración yaml válidas de manera simultánea en App Engine.
appengine:deployCron Habilita a etapas e implementa un archivo de configuración cron.yaml en App Engine.
appengine:deployDispatch Habilita a etapas e implementa un archivo de configuración dispatch.yaml en App Engine.
appengine:deployDos Habilita a etapas e implementa un archivo de configuración dos.yaml en App Engine.
appengine:deployIndex Habilita a etapas e implementa un archivo de configuración index.yaml en App Engine.
appengine:deployQueue Habilita a etapas e implementa un archivo de configuración queue.yaml en App Engine.
appengine:help Muestra la información de ayuda en el complemento de Maven de App Engine.
appengine:run Ejecuta el servidor de desarrollo de App Engine. Cuando el servidor está en ejecución, 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 la aplicación debido a los cambios en appengine-web.xml. Este objetivo es compatible con los servicios en paquetes heredados.
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. Este objetivo es compatible con los servicios en paquetes heredados.
appengine:stop Detiene un servidor de desarrollo web de App Engine en ejecución. Este objetivo es compatible con los servicios en paquetes heredados.

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

Utiliza los parámetros

Cada objetivo tiene parámetros asociados que puedes especificar en el archivo pom.xml. Por ejemplo:

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

También puedes definir parámetros de configuración en la línea de comandos. Si lo haces, debes seguir el patrón -D[USER_PROPERTY]=[PARAMETER_VALUE].

Por ejemplo, para especificar un directorio en el que deseas habilitar la aplicación a etapas, usa lo siguiente:

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.

appengine:deploy

Habilita a etapas e 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 o las marcas de línea de comandos gcloud app services:

Parámetro Descripción Propiedad del usuario
appEngineDirectory El directorio que contiene app.yaml y otros archivos de configuración de App Engine compatibles. El valor predeterminado es ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact La ubicación del archivo JAR o WAR que se implementará. El valor predeterminado es ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
bucket El bucket de Cloud Storage que se usa para habilitar a etapas los archivos asociados a la implementación. Si este argumento no se especifica, se usa el bucket predeterminado de la aplicación. app.deploy.bucket
cloudSdkPath Parámetro opcional para configurar la ubicación de Google Cloud CLI. De manera predeterminada, se descubre automáticamente desde la RUTA o la ubicación de instalación estándar. cloudSdkPath
deployables Los archivos YAML para los servicios o las opciones de configuración que desea implementar. El valor predeterminado es el archivo app.yaml en el directorio de etapa de pruebas. Si no se encuentra, se intentan generar de manera automática los archivos de configuración necesarios (como app.yaml) en el directorio de etapa de pruebas. app.deploy.deployables
dockerDirectory El directorio que contiene el Dockerfile y otros recursos de Docker. El valor predeterminado es ${basedir}/src/main/docker/. app.stage.dockerDirectory
imageUrl Implementa con una imagen específica de Docker. ImageUrl debe ser un nombre válido de Container Registry, por ejemplo gcr.io/foo, en el que foo es el nombre de la imagen. app.deploy.imageUrl
projectId El nombre del proyecto de Google Cloud que se usará en esta invocación. El valor predeterminado es el proyecto actual que se selecciona cuando se inicializagcloud. app.deploy.projectId
promote Asciende la versión implementada para que reciba todo el tráfico. El valor predeterminado es True. app.deploy.promote
server El servidor de App Engine con el que se debe establecer una conexión. En general, no es necesario cambiar este valor. app.deploy.server
stagingDirectory Obligatorio. El directorio en el que la aplicación se habilita a etapas. El valor predeterminado es ${project.build.directory}/appengine-staging. 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. app.deploy.stopPreviousVersion
version La versión de la aplicación que se creará o reemplazará por esta implementación. Si no especificas una versión, se generará una para ti. app.deploy.version

appengine:help

Muestra la información de ayuda en el complemento App Engine Maven. Para mostrar los detalles del parámetro, llama a:

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 valor 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 está en ejecución, 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
automaticRestart Reinicia las instancias de forma automática cuando se cambian los archivos de aplicación web (recursos o archivos de clase). Si deseas configurar Maven para que coloque los archivos de clase compilados en el directorio correcto de la aplicación web, debes cambiar la configuración de outputDirectory de Maven:

<build>
  <outputDirectory>
    target/${project.artifactId}-${project.version}/WEB-INF/classes
  </outputDirectory>
  ...
<plugins>
...
devserver.automaticRestart app.devserver.automaticRestart
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 deben pasar al comando de 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 la aplicación. El valor predeterminado es localhost. devserver.host app.devserver.host
port Puerto más bajo al que se deben vincular los servicios de la aplicación. El puerto predeterminado es 8080. devserver.port app.devserver.port
serverVersion La versión del servidor que se debe iniciar. Las opciones son “1” y “2-alpha”. La versión predeterminada es “1”. devserver.serverVersion app.devserver.serverVersion
services Obligatorio. Rutas de acceso a un directorio que contiene un directorio que, a su vez, contiene WEB-INF/web.xml. La ruta predeterminada es build/exploded-app. devserver.services app.devserver.services

appengine:stage

Genera un directorio de compilación de aplicaciones para la implementación.

Puedes usar los siguientes parámetros:

Parámetro Descripción Propiedad del usuario
appEngineDirectory El directorio que contiene app.yaml y otros archivos de configuración de App Engine compatibles. El valor predeterminado es ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact La ubicación del archivo JAR o WAR que se implementará. El valor predeterminado es ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
cloudSdkPath Un parámetro opcional para configurar la ubicación de la CLI de gcloud. cloudSdkPath
dockerDirectory El directorio que contiene el Dockerfile y otros recursos de Docker. El valor predeterminado es ${basedir}/src/main/docker/${basedir}/src/main/docker/. app.stage.dockerDirectory
stagingDirectory Obligatorio. El directorio en el que la aplicación se habilita a etapas. El valor predeterminado es ${project.build.directory}/appengine-staging. 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 deben pasar al comando de 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 la aplicación. El valor predeterminado es localhost. devserver.host app.devserver.host
port Puerto más bajo al que se deben vincular los servicios de la aplicación. El puerto predeterminado es 8080. devserver.port app.devserver.port
serverVersion La versión del servidor que se debe iniciar. Las opciones son “1” y “2-alpha”. La versión predeterminada es “1”. devserver.serverVersion app.devserver.serverVersion
services Obligatorio. Rutas de acceso a un directorio que contiene un directorio que, a su vez, 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 se inicie el servidor de apps de desarrollo 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 valor predeterminado es localhost. devserver.adminHost app.devserver.adminHost
port El puerto al que se debe vincular el servidor de administración. El valor predeterminado es 8000. devserver.adminPort app.devserver.adminPort
cloudSdkHome Un parámetro opcional para configurar la ubicación de la CLI de gcloud. Si no se especifica esta propiedad, el complemento descarga automáticamente la CLI de gcloud. cloudSdkHome cloudSdkHome