Metas e parâmetros do plug-in do Maven para App Engine

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. Esta meta é compatível com os serviços incluídos legados.
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. Esta meta é compatível com os serviços incluídos legados.
appengine:stop Para um servidor de desenvolvimento da Web do App Engine em execução. Esta meta é compatível com os serviços incluídos legados.

Para ver mais informações sobre como configurar e usar o Maven, consulte o artigo Como usar o Maven.

Como usar parâmetros

Cada meta tem parâmetros associados que podem ser especificados no arquivo pom.xml. Por exemplo:

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

Também é possível definir parâmetros de configuração na linha de comando seguindo o padrão -D[USER_PROPERTY]=[PARAMETER_VALUE].

Por exemplo, para especificar um diretório de teste do seu 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.

appengine:deploy

Testa e implanta um aplicativo no App Engine.

Use os parâmetros abaixo, alguns dos quais correspondem a sinalizações de linha de comando gcloud app deploy ou sinalizações de linha de comando gcloud app services:

Parâmetro Descrição Propriedade do usuário
appEngineDirectory O diretório que contém app.yaml e outros arquivos de configuração compatíveis do App Engine. O padrão é ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact O local do arquivo JAR ou WAR para implantação. O padrão é ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
bucket O bucket do Cloud Storage usado para testar arquivos associados à implantação. Se esse argumento não for especificado, o bucket padrão do aplicativo será usado. app.deploy.bucket
cloudSdkPath Parâmetro opcional para configurar o local da Google Cloud CLI. O padrão é descobrir automaticamente a partir do CAMINHO ou do local de instalação padrão. cloudSdkPath
deployables Arquivos YAML dos serviços ou configurações que você quer implantar. O padrão é o arquivo app.yaml no diretório de preparo. Se ele não for encontrado, tentará gerar automaticamente os arquivos de configuração necessários (como app.yaml) no diretório de preparo. app.deploy.deployables
dockerDirectory O diretório que contém o Dockerfile e outros recursos do Docker. O padrão é ${basedir}/src/main/docker/. app.stage.dockerDirectory
imageUrl Implanta com uma imagem Docker específica. ImageUrl precisa ser um nome válido do Artifact Registry, por exemplo, docker.pkg.dev/foo, em que foo é o nome da imagem. app.deploy.imageUrl
projectId O nome do projeto do Google Cloud a ser usado nesta invocação. O padrão é o projeto atual selecionado ao inicializar gcloud. app.deploy.projectId
promote Promote the deployed version to receive all traffic. O padrão é True. app.deploy.promote
server Servidor do App Engine ao qual conectar-se. Normalmente não é preciso alterar esse valor. app.deploy.server
stagingDirectory Obrigatório. Diretório onde o aplicativo será testado. O padrão é ${project.build.directory}/appengine-staging. app.stage.stagingDirectory
stopPreviousVersion Interrompe a versão em execução ao implantar uma nova versão que recebe todo o tráfego. app.deploy.stopPreviousVersion
version A versão do app que será criada ou substituída por essa implantação. Se você não especificar uma versão, será gerado um número de versão automaticamente. app.deploy.version

appengine:help

Exibe informações de ajuda sobre o plug-in do Maven para App Engine. Para exibir os detalhes do parâmetro, chame:

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

Use os parâmetros a seguir:

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 flags 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 Argumentos adicionais a serem transmitidos para o 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 devem se ligar. 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 compilação de aplicativos para implantação.

Você pode usar os seguintes parâmetros:

Parâmetro Descrição Propriedade do usuário
appEngineDirectory O diretório que contém app.yaml e outros arquivos de configuração compatíveis do App Engine. O padrão é ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact O local do arquivo JAR ou WAR para implantação. O padrão é ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
cloudSdkPath Parâmetro opcional para configurar o local da CLI gcloud. cloudSdkPath
dockerDirectory O diretório que contém o Dockerfile e outros recursos do Docker. O padrão é ${basedir}/src/main/docker/${basedir}/src/main/docker/. app.stage.dockerDirectory
stagingDirectory Obrigatório. Diretório onde o aplicativo será testado. O padrão é ${project.build.directory}/appengine-staging 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 Argumentos adicionais a serem transmitidos para o 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 devem se ligar. 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