Esta página explica como gerenciar um projeto do App Engine usando o Apache Maven, uma ferramenta de gerenciamento e compreensão de projetos de software. Ele é capaz de criar arquivos do aplicativo da Web (WAR, na sigla em inglês) para implantação no App Engine. O Google fornece um plug-in e os arquétipos do Maven compatíveis com o Maven 3.5 ou mais recente.
É possível usar o Maven para testar o aplicativo localmente e implantá-lo no App Engine.
Antes de começar
- Use o Console do Google Cloud para criar e configurar seu projeto do Cloud:
Acesse o App Engine- Selecione ou crie um novo projeto do Cloud.
- Se for necessário criar um aplicativo do App Engine para o projeto, siga as instruções para selecionar a região em que o aplicativo do App Engine ficará localizado.
- Se você não tem o Java, faça o download, a instalação e a configuração dele.
- Defina as sinalizações do compilador Java no
pom.xml
do projeto para especificar o código Java de 8 bytes:Java 8 - É necessário ter o Maven 3.5 ou mais recente instalado. Para ver se o Maven
3.5 ou mais recente está instalado, execute:
mvn -v
- Se você não tiver o Maven 3.5 ou mais recente instalado:
- Faça download (em inglês) do Maven 3.5 ou mais recente no site do Maven.
- Instale
o Maven 3.5 ou mais recente no seu computador.
Observação: usuários do Linux podem precisar fazer download do Maven em vez de usar
apt-get install
para instalar o Maven 3.5 ou posterior.
- Defina o projeto padrão para os comandos "gcloud" na configuração atual
executando o comando:
gcloud config set project PROJECT
em que PROJECT é o ID do projeto.
Como adicionar o plug-in Maven do App Engine a um projeto atual (opcional)
Para usar o plug-in Maven do Google
App Engine
(em inglês) em um projeto atual do Maven, adicione o seguinte
na seção plugins
no projeto pom.xml
do arquivo:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.7.0</version>
</plugin>
Escolher um arquétipo do App Engine
Os arquétipos do Maven permitem aos usuários criar projetos do Maven usando modelos que abordam cenários comuns. O App Engine aproveita esse recurso do Maven para fornecer alguns arquétipos úteis do App Engine no Maven Central. Selecione um arquétipo do App Engine apropriado para o aplicativo:
Tipo de aplicativo | Artefato | Descrição |
---|---|---|
Aplicativo do App Engine | appengine-skeleton-archetype |
Gera um novo projeto vazio do App Engine pronto para suas próprias classes e recursos, mas com os arquivos e diretórios obrigatórios. |
Aplicativo do App Engine | appengine-standard-archetype |
Gera um aplicativo Java básico para o ambiente padrão do App Engine. |
Aplicativo do App Engine | appengine-flexible-archetype |
Gera um aplicativo Java básico para o ambiente flexível do App Engine. |
Como criar um novo projeto usando o Maven
Durante a criação do projeto, o Maven solicita que você forneça groupId
, artifactId
,
version
e package
para o projeto.
Termo | Significado |
---|---|
groupId |
Um namespace dentro do Maven para rastrear os artefatos. Quando as pessoas consumirem o projeto nos próprios projetos Maven, ele funcionará como um atributo da dependência que vão especificar. |
artifactId |
O nome do projeto dentro do Maven. Também é especificado pelos consumidores do projeto quando eles dependem de você nos próprios projetos Maven. |
version |
A versão inicial do Maven com que gerar o projeto. É uma boa ideia ter version com sufixo -SNAPSHOT , porque isso fornecerá suporte no plug-in de lançamento do Maven para versões que estão em desenvolvimento. Para mais informações, consulte o guia do Maven para usar o plug-in da versão. |
package |
Pacote Java criado durante a geração. |
Como criar um novo aplicativo do App Engine
O procedimento a seguir descreve como usar o appengine-skeleton-archetype
para criar um aplicativo do App Engine.
Se você quiser usar os arquétipos Maven do App Engine para criar um aplicativo do App Engine, faça o seguinte:
Altere para o diretório onde você quer criar o projeto.
Invoque o seguinte comando do Maven:
mvn archetype:generate -Dappengine-version=1.9.59 -Dapplication-id=[YOUR-PROJECT-ID] -Dfilter=com.google.appengine.archetypes:
Configure
-Dappengine-version
com a versão mais recente do SDK do App Engine para Java eapplication-id
com ID do seu projeto do Cloud.Para criar um projeto vazio que contenha a estrutura de diretório e os arquivos necessários, prontos para suas próprias classes, forneça o número correspondente a
com.google.appengine.archetypes:appengine-skeleton-archetype
.Selecione a versão mais recente na lista exibida de versões de arquétipo disponíveis e aceite o padrão.
Quando solicitado a
Define value for property 'groupId'
, forneça o namespace pretendido para seu aplicativo. Por exemplo,com.mycompany.myapp
.Quando solicitado a
Define value for property 'artifactId'
, forneça o nome do projeto. Por exemplo,myapp
.Quando solicitado a
Define value for property 'version'
, aceite o valor padrão.Quando solicitado a
Define value for property 'package'
, forneça o nome que preferir para o pacote ou aceite o padrão. Os arquivos do Java gerados terão o nome do pacote que você especificar aqui.Quando solicitado a confirmar as opções escolhidas, aceite o valor padrão (
Y
).Aguarde a conclusão da geração do projeto. Em seguida, substitua o diretório pelo novo diretório do projeto, por exemplo,
myapp/
.Crie o projeto invocando
mvn clean package
Espere o projeto ser criado. Quando o projeto for concluído com êxito, aparecerá uma mensagem semelhante a esta:
[INFO] -------------------------------------------------- [INFO] BUILD SUCCESS [INFO] -------------------------------------------------- [INFO] Total time: 1:16.656s [INFO] Finished at: 2016-08-04T16:18:24-07:00 [INFO] Final Memory: 16M/228M [INFO] --------------------------------------------------
Se você tiver criado um novo aplicativo vazio usando o artefato
appengine-skeleton-archetype
:Antes de começar a codificar suas próprias classes para o aplicativo, familiarize-se com o layout básico do projeto e os arquivos necessários: dentro do diretório em que você criou o projeto, terá um subdiretório
myapp
, que contém o arquivopom.xml
, o subdiretóriosrc/main/java
e o subdiretóriosrc/main/webapp/WEB-INF
:- Adicionar suas próprias classes Java de aplicativo a
src/main/java/...
- Configurar seu aplicativo usando o arquivo
src/main/webapp/WEB-INF/appengine-web.xml
- Configure a implantação do seu aplicativo usando o arquivo
src/main/webapp/WEB-INF/web.xml
- Adicionar suas próprias classes Java de aplicativo a
Crie suas classes Java de aplicativo e adicione-as a
src/main/java/...
. Para mais informações, consulte Primeiros passos.Adicione a IU que será fornecida aos usuários do app. Para mais informações, consulte Como adicionar código de aplicativo e IU.
O artefato usado para criar o projeto fez a configuração
src/main/webapp/WEB-INF/appengine-web.xml
básica para você. No entanto, para uma configuração mais avançada, talvez seja necessário editar esse arquivo. Para mais informações, consulte Como configurar com appengine-web.xml.Edite o arquivo
src/main/webapp/WEB-INF/web.xml
para mapear URLs para os gerenciadores de aplicativos, especificar autenticação, filtros e assim por diante. Isso é descrito com mais detalhes em Descritor de implantação.
Como gerenciar, testar e implantar um projeto do Maven
Como compilar e criar o projeto
Para desenvolver um aplicativo criado com os arquétipos do Maven do App Engine, faça o seguinte:
Mude para o diretório principal do seu projeto.
Chame o Maven:
mvn clean package
Espere o projeto ser criado. Quando o projeto for concluído com êxito, aparecerá uma mensagem semelhante a esta:
BUILD SUCCESS Total time: 10.724s Finished at: 2016-08-04T16:18:24-07:00 Final Memory: 24M/213M
Você tem a opção de testar o aplicativo usando o procedimento a seguir.
Como testar o aplicativo com o servidor de desenvolvimento
Durante a fase de desenvolvimento, execute e teste o aplicativo a qualquer momento no servidor de desenvolvimento invocando o plug-in Maven do App Engine.
Para testar o app do App Engine:
Se ainda não criou o aplicativo, faça isso:
mvn clean package
Altere o diretório para o nível superior do projeto (por exemplo, para
myapp
) e invoque o Maven:mvn appengine:run
Aguarde a inicialização do servidor. Quando o servidor for completamente iniciado com o aplicativo em execução, aparecerá uma mensagem semelhante a esta:
[INFO] GCLOUD: INFO: Module instance default is running at http://localhost:44180/ [INFO] GCLOUD: Jul 29, 2016 9:23:55 PM com.google.appengine.tools.development.AbstractModule startup [INFO] GCLOUD: INFO: The admin console is running at http://localhost:44180/_ah/admin [INFO] GCLOUD: Jul 29, 2016 9:23:55 PM com.google.appengine.tools.development.devappserver2.DevAppServer2Impl doStart [INFO] GCLOUD: INFO: Dev App Server is now running
Use seu navegador para visitar
http://localhost:8080/
e acessar seu aplicativo.Desligue o aplicativo e o servidor de desenvolvimento pressionando Control-C.
Como especificar uma porta para teste local
Quando você executa o aplicativo no servidor de desenvolvimento local, a porta padrão
é 8080
. É possível alterar esse padrão modificando a entrada do plug-in de
appengine-maven-plugin
. Por exemplo, é possível especificar a porta e o endereço no arquivo
pom.xml
do diretório do aplicativo:
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.7.0</version>
<configuration>
<devserver.host>0.0.0.0</devserver.host>
<devserver.port>8181</devserver.port>
</configuration>
</plugin>
</plugins>
Neste exemplo, o <devserver.port>
define a porta como 8181
em vez do
padrão, e o endereço 0.0.0.0
é especificado, o que significa que o servidor de desenvolvimento
detectará solicitações provenientes da rede local.
O prefixo devserver
é opcional. É possível substituir por <port>8181</port>
.
Como depurar no servidor de desenvolvimento
Para depurar um aplicativo executado localmente, defina jvmFlags
na configuração do plug-in de modo a permitir a depuração na JVM subjacente. Por exemplo:
<configuration>
<jvmFlags>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</jvmFlag>
</jvmFlags>
</configuration>
Implantar o aplicativo
Para implantar o aplicativo:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Cloud. Se
o arquivo pom.xml
já
especificar o
ID do projeto, não será necessário incluir a propriedade -Dapp.deploy.projectId
no
comando executado.
A meta appengine:deploy
e todas as outras metas no plug-in do Maven do App Engine
têm parâmetros associados disponíveis para uso. Para ver uma lista completa de
metas e parâmetros, consulte Metas e parâmetros do plug-in Maven do
App Engine.
A seguir
- Explore o código do plug-in Maven do App Engine e relate os problemas no GitHub.
- Saiba como especificar parâmetros de metas em Metas e parâmetros do Maven do App Engine.