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 .
|
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.
Parámetros de los objetivos
Cada objetivo tiene parámetros asociados que puedes usar. Puedes especificar estos ajustes en pom.xml
o en la línea de comandos.
Para configurar estos ajustes en 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 de la CLI gcloud:
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.7.0</version>
<configuration>
<stage.enableJarSplitting>true</stage.enableJarSplitting>
<deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
<cloudSdkHome>/usr/foo/path/to/cloudsdk</cloudSdkHome>
</configuration>
</plugin>
</plugins>
Como alternativa, sigue el patrón -D[USER_PROPERTY]=[PARAMETER_VALUE]
para configurar estos ajustes en la línea de comandos.
En el siguiente ejemplo, 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 todas las ejecuciones de appengine:goal, configura el parámetro skip
como true.
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 la 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 realizará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 target/appengine-staging/WEB-INF/appengine-generated .
|
deploy.appEngineDirectory |
app.deploy.appEngineDirectory |
bucket |
El bucket de Google Cloud Storage que se usa para almacenar en etapa intermedia los archivos asociados a la implementación. Si este argumento no se especifica, se utiliza el bucket predeterminado de la aplicación. | deploy.bucket |
app.deploy.bucket |
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 |
cloudSdkVersion |
Parámetro opcional para especificar la versión deseada de la CLI de gcloud. | cloudSdkVersion |
cloudSdkVersion |
compileEncoding |
La codificación de caracteres a usar cuando se compilen las 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 que se debe 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 |
Asciende la versión implementada para que reciba todo el tráfico. El valor predeterminado es True . |
deploy.promote |
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. | deploy.server |
app.deploy.server |
sourceDirectory |
Obligatorio. La ubicación de los archivos compilados de la aplicación web o los WAR expandidos. Se usa como fuente de la etapa de pruebas. Solo se aplica al entorno estándar de App Engine. El valor 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 valor 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 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 aplicaciones para la implementación. La fase de etapa de pruebas se llama de forma automática antes del objetivo appengine:deploy
. Esta fase está a cargo de:
- Compilar los JSP de la aplicación web en clases de servlet
- Analizar todos los servlets anotados y generar un
web.xml
de guía de inicio rápido de Jetty (solo siweb.xml
está configurado para usar la versión 3.1 de la especificación del servlet). - Como alternativa, colocar las clases compiladas en un jar
- Generar un
app.yaml
completo a partir de los siguientes archivos:appengine-web.xml
,web.xml
, servlets anotados - Copiar todos los archivos estáticos de la aplicación web (html, css, js, imágenes, etc.) en un directorio
__static__/
que luego se implemente como archivos estáticos configurados enapp.yaml
El directorio de etapa de pruebas se puede usar a fin de inspeccionar lo que se implementa y se puede usar tal como está para el comando gcloud app deploy
.
Puedes usar los siguientes parámetros:
Parámetro | Descripción | Configuración de complementos | Configuración de la línea de comandos |
---|---|---|---|
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 |
cloudSdkVersion |
Parámetro opcional para especificar la versión deseada de la CLI de gcloud. | cloudSdkVersion |
cloudSdkVersion |
compileEncoding |
La codificación de caracteres a usar cuando se compilen las 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 compilados de la aplicación web o los WAR expandidos. Se usa como fuente de la etapa de pruebas. Solo se aplica al entorno estándar de App Engine. El valor 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 valor 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 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 |
Soluciona errores de carga
Si usas el objetivo deploy
, tu intento de implementación podría fallar 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 incorrecta para realizar la actualización.
Para resolver este problema, intenta cambiar el usuario con gcloud auth login.