Metas e parâmetros do plug-in do Maven para App Engine (baseado no SDK do Cloud)

Depois que você adiciona o plug-in do Maven para App Engine baseado no SDK do Cloud ao seu projeto, são disponibilizadas as seguintes metas do Maven específicas para o App Engine:

Meta Descrição
appengine:cloudSdkLogin Define o estado global do SDK do Cloud para conta.
appengine:deploy Prepara e implanta um aplicativo no App Engine.
appengine:deployAll Prepara e implanta um aplicativo com todas as configurações yaml válidas simultaneamente para o Google App Engine.
appengine:deployCron Testa e implanta um arquivo de configuração cron.yaml no App Engine.
appengine:deployDispatch Testa e implanta um arquivo de configuração dispatch.yaml no App Engine.
appengine:deployDos Testa e implanta um arquivo de configuração dos.yaml no App Engine.
appengine:deployIndex Testa e implanta um arquivo de configuração index.yaml no App Engine.
appengine:deployQueue Testa 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 houve alteração em appengine-web.xml. Se houver, o servidor recarregará o aplicativo. Não é preciso parar e reiniciar o aplicativo devido a alterações no appengine-web.xml.
appengine:stage Gera um diretório de aplicativo 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 Interrompe um servidor da Web de desenvolvimento 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.

Os usuários da versão do plug-in Maven baseado no SDK do App Engine para Java podem encontrar um mapeamento das metas de plug-in anteriores para comandos gcloud na documentação de referência relacionada.

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 em pom.xml, adicione o nome do parâmetro na seção <configuration>.

O exemplo a seguir divide arquivos JAR, interrompe a versão anteriormente em execução e especifica o caminho do Cloud SDK:

<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>

Se preferir, siga o padrão -D[USER_PROPERTY]=[PARAMETER_VALUE] para definir essas configurações na linha de comando.

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 você quiser ignorar todas as execuções de appengine:goal, defina o parâmetro skip como true.

appengine:deploy

Prepara e implanta um aplicativo no App Engine.

Use os parâmetros a seguir. Alguns deles correspondem a sinalizações da linha de comando gcloud app deploy:

Parâmetro Descrição Configuração do plug-in Configuração da linha de comando
appEngineDirectory Localização de arquivos de configuração .yaml (cron, index etc) que geram implantações específicas de configuração (appengineDeployCron etc). Em aplicativos padrão, os arquivos de configuração .xml são convertidos durante o teste em .yaml e colocados em target/appengine-staging/WEB-INF/appengine-generated. deploy.appEngineDirectory app.deploy.appEngineDirectory
bucket Intervalo do Google Cloud Storage usado para testar arquivos associados à implantação. Se esse argumento não for especificado, será usado o intervalo padrão do aplicativo. deploy.bucket app.deploy.bucket
cloudSdkHome Parâmetro opcional para configurar o local do SDK do Cloud. Se essa propriedade não for especificada, o plug-in fará automaticamente o download do SDK do Cloud. cloudSdkHome cloudSdkHome
cloudSdkVersion Parâmetro opcional para especificar a versão do SDK do Cloud 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. Refere-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 Executa 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 Cria .jar do conteúdo de WEB-INF/classes. Refere-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. É aplicável 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. É aplicável 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 Promote the deployed version to receive all traffic. 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. Local dos arquivos de aplicativos da Web compilados ou o WAR explodido. Usado como origem para testes. É aplicável 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 em que será testado o aplicativo. O padrão é ${project.build.directory}/appengine-staging. stage.stagingDirectory app.stage.stagingDirectory
stopPreviousVersion Interrompe 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 Nome da meta com conteúdo da Ajuda que será exibido. 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 houve alteração em appengine-web.xml. Se houver, o servidor recarregará o aplicativo. Isso significa que você não precisa parar e reiniciar seu aplicativo devido a alterações no 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
environment Um mapa de variáveis de ambiente a enviar para o servidor de desenvolvimento local. Por exemplo:

<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Argumentos adicionais a serem transferidos para o comando java ao iniciar uma instância do aplicativo. Pode ser especificado mais de uma vez. Por 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 devem se vincular. O padrão é localhost. devserver.host app.devserver.host
port Porta mais baixa a que os serviços de aplicativos precisam se ligar. 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 contendo um diretório contendo WEB-INF/web.xml. O padrão é build/exploded-app. devserver.services app.devserver.services

appengine:stage

Gera um diretório de aplicativo para implantação.

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 do SDK do Cloud. Se essa propriedade não for especificada, o plug-in fará automaticamente o download do SDK do Cloud. cloudSdkHome cloudSdkHome
cloudSdkVersion Parâmetro opcional para especificar a versão do SDK do Cloud 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. Refere-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. É aplicável apenas ao ambiente padrão do App Engine. stage.dockerfile app.stage.dockerfile
enableJarClasses Cria .jar do conteúdo de WEB-INF/classes. Refere-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. É aplicável 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. É aplicável 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. Local dos arquivos de aplicativos da Web compilados ou o WAR explodido. Usado como origem para testes. É aplicável 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. O 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. Por exemplo:

<environment>
  <key1>value1</key1>
  <key2>value2</key2>
</environment>
      
devserver.environment app.devserver.environment
jvmFlags Argumentos adicionais a serem transferidos para o comando java ao iniciar uma instância do aplicativo. Pode ser especificado mais de uma vez. Por 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 devem se vincular. O padrão é localhost. devserver.host app.devserver.host
port Porta mais baixa a que os serviços de aplicativos precisam se ligar. 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 contendo um diretório contendo 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

Interrompe um servidor da Web de desenvolvimento 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 deve se vincular. O padrão é localhost. devserver.adminHost app.devserver.adminHost
port Porta a que o servidor de administração deve se vincular. O padrão é 8000. devserver.adminPort app.devserver.adminPort
cloudSdkHome Parâmetro opcional para configurar o local do SDK do Cloud. Se essa propriedade não for especificada, o plug-in fará automaticamente o download do SDK do Cloud. cloudSdkHome cloudSdkHome

Solução de problemas de erros de upload

Se você usar a meta deploy, sua tentativa de implantação poderá apresentar falha 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.