Depois que você adiciona o plug-in do Maven do App Engine baseado na CLI gcloud ao projeto, são disponibilizadas as seguintes metas do Maven específicas do App Engine:
Meta | Descrição |
---|---|
appengine:cloudSdkLogin |
Define o estado global da CLI gcloud para a conta. |
appengine:deploy |
Testa e implanta um aplicativo no App Engine. |
appengine:deployAll |
Prepara e implanta um aplicativo com todas as configurações yaml válidas simultaneamente no App Engine. |
appengine:deployCron |
Prepara e implanta um arquivo de configuração cron.yaml
no App Engine. |
appengine:deployDispatch |
Prepara e implanta um arquivo de configuração dispatch.yaml
no App Engine. |
appengine:deployDos |
Prepara e implanta um arquivo de configuração dos.yaml
no App Engine. |
appengine:deployIndex |
Prepara e implanta um arquivo de configuração index.yaml
no App Engine. |
appengine:deployQueue |
Prepara e implanta um arquivo de configuração queue.yaml
no App Engine. |
appengine:help |
Exibe informações de ajuda sobre o plug-in do Maven para App Engine. |
appengine:run |
Executa o servidor de desenvolvimento do App Engine. Quando o servidor está
em execução, ele faz verificações contínuas para determinar se
appengine-web.xml foi alterado. Se afirmativo, o servidor atualizará
o aplicativo. Você não precisa parar e reiniciar o aplicativo devido
a alterações em appengine-web.xml .
|
appengine:stage |
Gera um diretório de aplicativos para implantação. |
appengine:start |
Inicia a execução do servidor de desenvolvimento do App Engine de forma assíncrona e depois
retorna para a linha de comando. Quando esta meta é executada, o comportamento dela é igual
ao da meta run . A diferença é que o Maven continua processando metas
e é encerrado depois que o servidor entra em funcionamento.
|
appengine:stop |
Para um servidor de desenvolvimento da Web do App Engine em execução. |
Para ver mais informações sobre como configurar e usar o Maven, consulte o artigo Como usar o Maven.
Parâmetros de meta
Cada meta tem parâmetros associados que podem ser usados. É possível especificar essas configurações em pom.xml
ou na linha de comando.
Para definir essas configurações no pom.xml
, adicione o nome do parâmetro à
seção <configuration>
.
O exemplo a seguir divide arquivos JAR, interrompe a versão anteriormente em execução e especifica o caminho da 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, para definir essas configurações na linha de comando, siga o padrão
-D[USER_PROPERTY]=[PARAMETER_VALUE]
.
O exemplo a seguir especifica um diretório para testar o aplicativo:
mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]
Consulte as seções a seguir para ver uma lista dos parâmetros disponíveis para cada meta.
Se quiser ignorar todas as execuções de appengine:goal, defina o parâmetro skip
como true.
appengine:deploy
Testa e implanta um aplicativo no App Engine.
Use os parâmetros a seguir, sendo que alguns deles correspondem às
sinalizações de linha de comando gcloud app deploy
:
Parâmetro | Descrição | Configuração do plug-in | Configuração da linha de comando |
---|---|---|---|
appEngineDirectory |
Local dos arquivos de configuração .yaml (cron, index etc.) de
onde as implementações específicas de configuração (appengineDeployCron etc.) serão
implantadas. Para aplicativos padrão, seus arquivos de configuração
.xml são convertidos durante a preparação para .yaml e colocados em
target/appengine-staging/WEB-INF/appengine-generated .
|
deploy.appEngineDirectory |
app.deploy.appEngineDirectory |
bucket |
Bucket do Google Cloud Storage usado para testar arquivos associados à implantação. Se esse argumento não for especificado, será usado o bucket padrão do aplicativo. | deploy.bucket |
app.deploy.bucket |
cloudSdkHome |
Parâmetro opcional para configurar o local da CLI gcloud. Se essa propriedade não for especificada, o plug-in fará automaticamente o download da CLI gcloud. | cloudSdkHome |
cloudSdkHome |
cloudSdkVersion |
Parâmetro opcional para especificar a versão da CLI gcloud desejada. | cloudSdkVersion |
cloudSdkVersion |
compileEncoding |
Codificação de caracteres a usar na compilação de JSPs. É aplicável apenas ao ambiente padrão do App Engine. | stage.compileEncoding |
app.stage.compileEncoding |
deleteJsps |
Exclui os arquivos de origem JSP após a compilação. Aplica-se apenas ao ambiente padrão do App Engine. | stage.deleteJsps |
app.stage.deleteJsps |
disableJarJsps |
Desativar a adição de classes geradas de JSPs. É aplicável apenas ao ambiente padrão do App Engine. | stage.disableJarJsps |
app.stage.disableJarJsps |
dockerBuild |
Compile uma versão do Docker hospedada
(remote ) ou local (local ). Para executar uma versão local, é preciso que o ambiente Docker local
esteja configurado corretamente. O padrão é uma versão hospedada.
|
deploy.dockerBuild |
app.deploy.dockerBuild |
dockerfile |
Localização do Dockerfile a ser usado para aplicativos padrão do App Engine executados no ambiente flexível. É aplicável apenas ao ambiente padrão do App Engine. | stage.dockerfile |
app.stage.dockerfile |
enableJarClasses |
Execute jar no conteúdo WEB-INF/classes . Aplica-se apenas ao ambiente padrão do
App Engine.
|
stage.enableJarClasses |
app.stage.enableJarClasses |
enableJarSplitting |
Divide arquivos JAR maiores que 10 MB em fragmentos menores. Aplica-se apenas ao ambiente padrão do App Engine. | stage.enableJarSplitting |
app.stage.enableJarSplitting |
enableQuickstart |
Usa o início rápido do Jetty para processar anotações de servlet. Refere-se apenas ao ambiente padrão do App Engine. | stage.enableQuickstart |
app.stage.enableQuickstart |
force |
Força a implantação, substituindo qualquer implantação anterior em andamento nesta versão. | deploy.force |
app.deploy.force |
imageUrl |
Faz a implantação com uma determinada imagem do Docker. O URL do Docker precisa ser de um dos nomes de host válidos do Google Container Registry. | deploy.imageUrl |
app.deploy.imageUrl |
jarSplittingExcludes |
Exclui de todos os arquivos JAR aqueles arquivos que correspondem à lista de SUFIXOS separados por vírgulas. É aplicável apenas ao ambiente padrão do App Engine. | stage.jarSplittingExcludes |
app.stage.jarSplittingExcludes |
projectId |
Nome do projeto do Google Cloud Platform para uso nesta invocação.
É preciso especificar um projectId ou é possível configurar o GCLOUD_CONFIG para usar o conjunto de projetos em seu estado de configuração do gcloud.
|
deploy.projectId |
app.deploy.projectId |
promote |
Promove a versão implantada para que ela receba todo o tráfego. O padrão é
True . |
deploy.promote |
app.deploy.promote |
server |
Servidor do App Engine para se conectar. Normalmente não é preciso alterar esse valor. | deploy.server |
app.deploy.server |
sourceDirectory |
Obrigatório. O local dos arquivos de aplicativos da Web compilados ou o
WAR explodido. Isso é usado como fonte de preparação. Refere-se apenas ao ambiente padrão do
App Engine. O padrão é
${project.build.directory}/${project.build.finalName} .
|
stage.sourceDirectory |
app.stage.sourceDirectory |
stagingDirectory |
Obrigatório. Diretório onde o aplicativo será testado. O padrão é
${project.build.directory}/appengine-staging . |
stage.stagingDirectory |
app.stage.stagingDirectory |
stopPreviousVersion |
Interromper a versão anteriormente em execução ao implantar uma versão nova que recebe todo o tráfego. | deploy.stopPreviousVersion |
app.deploy.stopPreviousVersion |
version |
A versão do aplicativo que será criada ou substituída por essa implantação. Se você não especificar uma versão, será gerado automaticamente um número de versão. | deploy.version |
app.deploy.version |
appengine:help
Exibe informações de ajuda sobre o plug-in do Maven para App Engine.
Para exibir detalhes dos parâmetros, chame:
mvn appengine:help -Ddetail=true -Dgoal=[GOAL_NAME]
Use os seguintes parâmetros:
Parâmetro | Descrição | Propriedade do usuário |
---|---|---|
detail |
Se verdadeiro, exibe todas as propriedades configuráveis para cada meta. O padrão é
False . |
detail |
goal |
O nome da meta para exibir o respectivo conteúdo de ajuda. Quando não especificado, todas as metas são exibidas. | goal |
indentSize |
O número de espaços por nível de recuo. Deve ser um número positivo.
O padrão é 2 .
|
indentSize |
lineLength |
O comprimento máximo de uma linha de exibição. Deve ser um número positivo.
O padrão é 80 . |
lineLength |
appengine:run
Executa o servidor da Web de desenvolvimento do App Engine. Quando o servidor está
em execução, ele faz verificações contínuas para determinar se appengine-web.xml
foi
alterado. Se houver, o servidor recarregará o aplicativo. Isso significa que você
não precisa parar e reiniciar o aplicativo devido a alterações em
appengine-web.xml
.
Use os parâmetros a seguir. Alguns deles correspondem a sinalizações de linha de comando do servidor de desenvolvimento local:
Propriedade | Descrição | Configuração do plug-in | Configuração da linha de comando |
---|---|---|---|
automaticRestart |
Reiniciar as instâncias automaticamente quando os arquivos do aplicativo da Web (recursos
ou arquivos de classe) forem alterados. Para configurar o Maven para colocar os arquivos de classe
compilados no diretório correto do app da Web, altere
a configuração "outputDirectory" do Maven:
<build> <outputDirectory> target/${project.artifactId}-${project.version}/WEB-INF/classes </outputDirectory> ... <plugins> ... |
devserver.automaticRestart |
app.devserver.automaticRestart |
environment |
Um mapa de variáveis de ambiente a enviar para o servidor de desenvolvimento local.
Exemplo:
<environment> <key1>value1</key1> <key2>value2</key2> </environment> |
devserver.environment |
app.devserver.environment |
jvmFlags |
Outros argumentos a serem transmitidos ao comando java ao iniciar uma
instância do aplicativo. Pode ser especificado mais de uma vez. Exemplo:
<jvmFlags> <jvmFlag>-Xmx1024m</jvmFlag> <jvmFlag>-Xms256m</jvmFlag> </jvmFlags> |
devserver.jvmFlags |
app.devserver.jvmFlags |
host |
Nome do host a que os serviços de aplicativos precisam se vincular. O padrão é
localhost .
|
devserver.host |
app.devserver.host |
port |
Porta mais baixa a que os serviços de aplicativos precisam se vincular. O padrão é
8080 .
|
devserver.port |
app.devserver.port |
serverVersion |
Versão do servidor a iniciar. As opções são “1” e “2-alpha”. O padrão é “1”. | devserver.serverVersion |
app.devserver.serverVersion |
services |
Obrigatório. Caminho(s) para um diretório que contém
WEB-INF/web.xml . O padrão é build/exploded-app .
|
devserver.services |
app.devserver.services |
appengine:stage
Gera um diretório de aplicativos para implantação. A fase do estágio é chamada
automaticamente antes da meta appengine:deploy
. Esta fase é responsável por:
- compilar as páginas do JavaServer do aplicativo da Web para classes do bytecode
- A análise de todos os servlets anotados e geração de um guia de início rápido do Jetty
web.xml
(somente seweb.xml
estiver configurado para usar a versão 3.1 da especificação do servlet) - opcionalmente colocar as classes compiladas em um jar;
- gerar um
app.yaml
completo a partir dos seguintes arquivos:appengine-web.xml
,web.xml
, servlets anotados; - copiar todos os arquivos estáticos do aplicativo da Web (html, css, js, imagens etc.) em
um diretório
__static__/
, que é implantado como arquivos estáticos configurados emapp.yaml
.
O diretório de preparo pode ser usado para inspecionar o que está sendo implantado e pode ser usado
no estado em que se encontra para o comando gcloud app deploy
.
Use os seguintes parâmetros:
Parâmetro | Descrição | Configuração do plug-in | Configuração da linha de comando |
---|---|---|---|
cloudSdkHome |
Parâmetro opcional para configurar o local da CLI gcloud. Se essa propriedade não for especificada, o plug-in fará automaticamente o download da CLI gcloud. | cloudSdkHome |
cloudSdkHome |
cloudSdkVersion |
Parâmetro opcional para especificar a versão da CLI gcloud desejada. | cloudSdkVersion |
cloudSdkVersion |
compileEncoding |
Codificação de caracteres a usar na compilação de JSPs. Refere-se apenas ao ambiente padrão do App Engine. | stage.compileEncoding |
app.stage.compileEncoding |
deleteJsps |
Exclui os arquivos de origem JSP após a compilação. Aplica-se apenas ao ambiente padrão do App Engine. | stage.deleteJsps |
app.stage.deleteJsps |
dockerfile |
Localização do Dockerfile a ser usado em aplicativos padrão do App Engine executados no ambiente flexível. Refere-se apenas ao ambiente padrão do App Engine. | stage.dockerfile |
app.stage.dockerfile |
enableJarClasses |
Execute jar no conteúdo WEB-INF/classes . Aplica-se apenas ao ambiente padrão do
App Engine.
|
stage.enableJarClasses |
app.stage.enableJarClasses |
enableJarSplitting |
Divide arquivos JAR maiores que 10 MB em fragmentos menores. Aplica-se apenas ao ambiente padrão do App Engine. | stage.enableJarSplitting |
app.stage.enableJarSplitting |
enableQuickstart |
Usa o início rápido do Jetty para processar anotações de servlet. Refere-se apenas ao ambiente padrão do App Engine. | stage.enableQuickstart |
app.stage.enableQuickstart |
jarSplittingExcludes |
Exclui de todos os arquivos JAR aqueles arquivos que correspondem à lista de SUFIXOS separados por vírgulas. É aplicável apenas ao ambiente padrão do App Engine. | stage.jarSplittingExcludes |
app.stage.jarSplittingExcludes |
sourceDirectory |
Obrigatório. O local dos arquivos de aplicativos da Web compilados ou o
WAR explodido. Isso é usado como fonte de preparação. Refere-se apenas ao ambiente padrão do
App Engine. O padrão é
${project.build.directory}/${project.build.finalName} .
|
stage.sourceDirectory |
app.stage.sourceDirectory |
stagingDirectory |
Obrigatório. Diretório onde o aplicativo será testado. O padrão é
${project.build.directory}/appengine-staging |
stage.stagingDirectory |
app.stage.stagingDirectory |
appengine:start
Inicia a execução do servidor da Web de desenvolvimento do App Engine de forma assíncrona
e depois retorna à linha de comando. Quando esta meta é executada, o comportamento dela é igual
ao da meta run
. A diferença é que o Maven continua processando metas e é encerrado
depois que o servidor entra em funcionamento.
Use os seguintes parâmetros:
Propriedade | Descrição | Configuração do plug-in | Configuração da linha de comando |
---|---|---|---|
environment |
Um mapa de variáveis de ambiente a enviar para o servidor de desenvolvimento local.
Exemplo:
<environment> <key1>value1</key1> <key2>value2</key2> </environment> |
devserver.environment |
app.devserver.environment |
jvmFlags |
Outros argumentos a serem transmitidos ao comando java ao iniciar uma
instância do aplicativo. Pode ser especificado mais de uma vez. Exemplo:
<jvmFlags> <jvmFlag>-Xmx1024m</jvmFlag> <jvmFlag>-Xms256m</jvmFlag> </jvmFlags> |
devserver.jvmFlags |
app.devserver.jvmFlags |
host |
Nome do host a que os serviços de aplicativos precisam se vincular. O padrão é
localhost .
|
devserver.host |
app.devserver.host |
port |
Porta mais baixa a que os serviços de aplicativos precisam se vincular. O padrão é
8080 .
|
devserver.port |
app.devserver.port |
serverVersion |
Versão do servidor a iniciar. As opções são “1” e “2-alpha”. O padrão é “1”. | devserver.serverVersion |
app.devserver.serverVersion |
services |
Obrigatório. Caminho(s) para um diretório que contém
WEB-INF/web.xml . O padrão é build/exploded-app .
|
devserver.services |
app.devserver.services |
startSuccessTimeout |
Tempo, em segundos, para aguardar o início do servidor de apps de desenvolvimento em segundo plano (ao usar appengineStart). | devserver.startSuccessTimeout |
app.devserver.startSuccessTimeout |
appengine:stop
Para um servidor de desenvolvimento da Web do App Engine em execução.
Use os seguintes parâmetros:
Parâmetro | Descrição | Configuração do plug-in | Configuração da linha de comando |
---|---|---|---|
host |
Nome do host a que o servidor de administração precisa se vincular. O padrão é
localhost |
devserver.adminHost |
app.devserver.adminHost |
port |
Porta a que o servidor de administração precisa se vincular. O padrão é 8000 . |
devserver.adminPort |
app.devserver.adminPort |
cloudSdkHome |
Parâmetro opcional para configurar o local da CLI gcloud. Se essa propriedade não for especificada, o plug-in fará automaticamente o download da CLI gcloud. | cloudSdkHome |
cloudSdkHome |
Solução de problemas de erros de upload
Se você usar a meta deploy
, sua tentativa de implantação poderá falhar com uma mensagem
semelhante a esta:
404 Not Found This application does not exist (app_id=u'your-app-ID')
.
Esse erro ocorrerá se você tiver várias contas do Google e estiver usando a
conta incorreta para executar a atualização.
Para resolver esse problema, altere o usuário autorizado com o comando gcloud auth login.