Objetivos e parâmetros do plug-in Maven do App Engine

Depois de adicionar o plug-in Maven do App Engine baseado na CLI gcloud ao seu projeto, os seguintes objetivos Maven específicos do App Engine estão disponíveis:

Objetivo Descrição
appengine:cloudSdkLogin Define o estado global da CLI gcloud para account.
appengine:deploy Prepara e implementa uma aplicação no App Engine.
appengine:deployAll Prepara e implementa uma aplicação com todas as respetivas configurações YAML válidas simultaneamente no App Engine.
appengine:deployCron Prepara e implementa um ficheiro de configuração cron.yaml no App Engine.
appengine:deployDispatch Prepara e implementa um ficheiro de configuração dispatch.yaml no App Engine.
appengine:deployDos Prepara e implementa um ficheiro de configuração dos.yaml no App Engine.
appengine:deployIndex Prepara e implementa um ficheiro de configuração index.yaml no App Engine.
appengine:deployQueue Prepara e implementa um ficheiro de configuração queue.yaml no App Engine.
appengine:help Apresenta informações de ajuda sobre o plug-in do Maven do App Engine.
appengine:run Executa o servidor de desenvolvimento do App Engine. Quando o servidor está em execução, verifica continuamente se appengine-web.xml foi alterado. Se tiver, o servidor recarrega a aplicação. Não tem de parar nem reiniciar a aplicação devido a alterações ao appengine-web.xml. Este objetivo é suportado para os serviços incluídos antigos.
appengine:stage Gera um diretório de aplicações para implementação.
appengine:start Inicia a execução do devserver do App Engine de forma assíncrona e, em seguida, volta à linha de comandos. Quando este objetivo é executado, o comportamento é o mesmo que o objetivo run, exceto que o Maven continua a processar objetivos e sai após o servidor estar em funcionamento. Este objetivo é suportado para os serviços incluídos antigos.
appengine:stop Para um servidor de programação Web do App Engine em execução. Este objetivo é suportado para os serviços incluídos antigos.

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

Usar parâmetros

Cada objetivo tem parâmetros associados que pode especificar no ficheiro pom.xml. Por exemplo:

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

Também pode definir parâmetros de configuração na linha de comandos, seguindo o padrão -D[USER_PROPERTY]=[PARAMETER_VALUE].

Por exemplo, para especificar um diretório para o qual preparar a sua aplicação:

mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]

Consulte as secções seguintes para ver uma lista dos parâmetros disponíveis para cada objetivo.

appengine:deploy

Prepara e implementa uma aplicação no App Engine.

Pode usar os seguintes parâmetros, alguns dos quais correspondem a gcloud app deploy sinalizadores de linha de comandos ou gcloud app services sinalizadores de linha de comandos:

Parâmetro Descrição Propriedade do utilizador
appEngineDirectory O diretório que contém app.yaml e outros ficheiros de configuração do App Engine suportados. A predefinição é ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact A localização do arquivo JAR ou WAR a implementar. A predefinição é ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
bucket O contentor do Cloud Storage usado para preparar ficheiros associados à implementação. Se este argumento não for especificado, é usado o contentor predefinido da aplicação. app.deploy.bucket
cloudSdkPath Parâmetro opcional para configurar a localização da CLI gcloud. A predefinição é a deteção automática a partir do PATH ou da localização de instalação padrão. cloudSdkPath
deployables Os ficheiros YAML dos serviços ou das configurações que quer implementar. A predefinição é o ficheiro app.yaml no diretório de preparação. Se não for encontrado, tenta gerar automaticamente os ficheiros de configuração necessários (como app.yaml) no diretório de preparação. app.deploy.deployables
dockerDirectory O diretório que contém o Dockerfile e outros recursos do Docker. A predefinição é ${basedir}/src/main/docker/. app.stage.dockerDirectory
imageUrl Implementar com uma imagem do Docker específica. ImageUrl tem de ser um nome do Artifact Registry válido, por exemplo, docker.pkg.dev/foo, em que foo é o nome da imagem. app.deploy.imageUrl
projectId O Google Cloud nome do projeto a usar para esta invocação. O valor predefinido é o projeto atual selecionado quando inicializa gcloud. app.deploy.projectId
promote Promova a versão implementada para receber todo o tráfego. A predefinição é True. app.deploy.promote
server O servidor do App Engine ao qual estabelecer ligação. Normalmente, não precisa de alterar este valor. app.deploy.server
stagingDirectory Obrigatório. O diretório para o qual a aplicação deve ser preparada. A predefinição é ${project.build.directory}/appengine-staging. app.stage.stagingDirectory
stopPreviousVersion Pare a versão em execução anterior quando implementar uma nova versão que recebe todo o tráfego. app.deploy.stopPreviousVersion
version A versão da app que vai ser criada ou substituída por esta implementação. Se não especificar uma versão, é gerada uma para si. app.deploy.version

appengine:help

Apresenta informações de ajuda sobre o plug-in do Maven do App Engine. Para apresentar os detalhes dos parâmetros, chame:

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

Pode usar os seguintes parâmetros:

Parâmetro Descrição Propriedade do utilizador
detail Se for verdadeiro, apresenta todas as propriedades definíveis para cada objetivo. A predefinição é False. detail
goal O nome do objetivo para o qual mostrar ajuda. Se não for especificado, todos os objetivos são apresentados. goal
indentSize O número de espaços por nível de avanço. Deve ser um número positivo. A predefinição é 2. indentSize
lineLength O comprimento máximo de uma linha de visualização. Deve ser um número positivo. A predefinição é 80. lineLength

appengine:run

Executa o servidor Web de desenvolvimento do App Engine. Quando o servidor está em execução, verifica continuamente se appengine-web.xml mudou. Se tiver, o servidor recarrega a aplicação. Isto significa que não tem de parar e reiniciar a aplicação devido a alterações ao appengine-web.xml.

Pode usar os seguintes parâmetros, alguns dos quais correspondem às flags da linha de comandos do servidor de desenvolvimento local:

Propriedade Descrição Configuração do plugin Configuração da linha de comandos
automaticRestart Reiniciar instâncias automaticamente quando os ficheiros da aplicação Web (recursos ou ficheiros de classe) são alterados. Para configurar o Maven de modo a colocar os ficheiros de classe compilados no diretório correto da aplicação Web, tem de alterar a definiçã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 transmitir ao comando java quando iniciar uma instância da app. Pode ser especificado mais do que uma vez. Exemplo:
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Nome do anfitrião ao qual os serviços de aplicação devem ser associados. A predefinição é localhost. devserver.host app.devserver.host
port Porta mais baixa à qual os serviços de aplicação devem ser associados. A predefinição é 8080. devserver.port app.devserver.port
serverVersion Versão do servidor a iniciar. As opções são "1" e "2-alpha". A predefinição é "1". devserver.serverVersion app.devserver.serverVersion
services Obrigatório. Caminhos para um diretório que contém um diretório que contém WEB-INF/web.xml. A predefinição é build/exploded-app. devserver.services app.devserver.services

appengine:stage

Gera um diretório de compilação de aplicações para implementação.

Pode usar os seguintes parâmetros:

Parâmetro Descrição Propriedade do utilizador
appEngineDirectory O diretório que contém app.yaml e outros ficheiros de configuração do App Engine suportados. A predefinição é ${basedir}/src/main/appengine. app.stage.appEngineDirectory
artifact A localização do arquivo JAR ou WAR a implementar. A predefinição é ${project.build.directory}/${project.build.finalName}.${project.packaging}. app.stage.artifact
cloudSdkPath Parâmetro opcional para configurar a localização da CLI gcloud. cloudSdkPath
dockerDirectory O diretório que contém o Dockerfile e outros recursos do Docker. A predefinição é ${basedir}/src/main/docker/${basedir}/src/main/docker/. app.stage.dockerDirectory
stagingDirectory Obrigatório. O diretório para o qual a aplicação deve ser preparada. A predefinição é ${project.build.directory}/appengine-staging app.stage.stagingDirectory

appengine:start

Inicia a execução do servidor Web de desenvolvimento do App Engine de forma assíncrona e, em seguida, regressa à linha de comandos. Quando este objetivo é executado, o comportamento é o mesmo que o objetivo run, exceto que o Maven continua a processar objetivos e sai após o servidor estar em funcionamento.

Pode usar os seguintes parâmetros:

Propriedade Descrição Configuração do plugin Configuração da linha de comandos
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 transmitir ao comando java quando iniciar uma instância da app. Pode ser especificado mais do que uma vez. Exemplo:
<jvmFlags>
  <jvmFlag>-Xmx1024m</jvmFlag>
  <jvmFlag>-Xms256m</jvmFlag>
</jvmFlags>
      
devserver.jvmFlags app.devserver.jvmFlags
host Nome do anfitrião ao qual os serviços de aplicação devem ser associados. A predefinição é localhost. devserver.host app.devserver.host
port Porta mais baixa à qual os serviços de aplicação devem ser associados. A predefinição é 8080. devserver.port app.devserver.port
serverVersion Versão do servidor a iniciar. As opções são "1" e "2-alpha". A predefinição é "1". devserver.serverVersion app.devserver.serverVersion
services Obrigatório. Caminhos para um diretório que contém um diretório que contém WEB-INF/web.xml. A predefinição é build/exploded-app. devserver.services app.devserver.services
startSuccessTimeout Quantidade de tempo em segundos a aguardar que o servidor de apps de desenvolvimento seja iniciado em segundo plano (quando usar appengineStart). devserver.startSuccessTimeout app.devserver.startSuccessTimeout

appengine:stop

Para um servidor de programação Web do App Engine em execução.

Pode usar os seguintes parâmetros:

Parâmetro Descrição Configuração do plugin Configuração da linha de comandos
host Nome do anfitrião ao qual o servidor de administração deve ser associado. A predefinição é localhost devserver.adminHost app.devserver.adminHost
port Porta à qual o servidor de administração deve ser associado. A predefinição é 8000. devserver.adminPort app.devserver.adminPort
cloudSdkHome Parâmetro opcional para configurar a localização da CLI gcloud. Se esta propriedade não for especificada, o plug-in transfere automaticamente a CLI gcloud. cloudSdkHome cloudSdkHome