Como usar o Gradle e o plug-in do App Engine

Saiba como gerenciar um projeto de ambiente flexível do App Engine usando o Gradle, um sistema de criação declarativo usado para automatizar criação, teste e implantação.

Antes de começar

Instale e configure os pré-requisitos a seguir:

Como configurar e validar seu projeto do Cloud

Você precisa configurar seu projeto do Cloud e instalar o SDK do Cloud.

  1. Use o Console do Google Cloud para criar e configurar seu projeto do Cloud:

    Acessar o App Engine

    1. Selecione ou crie um novo projeto do Cloud.
    2. Siga as instruções para certificar-se de que há um aplicativo do App Engine e de que o faturamento está ativado:
      1. Para criar um aplicativo do App Engine para o projeto, será enviada uma instrução para selecionar a região em que o aplicativo ficará localizado.
      2. Siga as instruções para criar uma nova conta de faturamento ou selecione uma conta atual.
    3. O Painel será aberto após a criação do aplicativo do App Engine e a ativação do faturamento no projeto.
  2. Instale e inicie o SDK do Cloud.

    Se a ferramenta gcloud já estiver instalada e você quiser configurá-la para usar um ID do projeto do Cloud diferente do inicializado, consulte Como gerenciar as configurações do SDK do Cloud.

  3. Instale o componente App Engine para Java:

    gcloud components install app-engine-java
    

Como criar um novo projeto do Gradle

É possível criar um novo projeto do Gradle do zero usando o shell. Como alternativa, para testar o plug-in, é possível fazer o download, executar localmente e implantar o projeto "Hello, World".

Para criar um novo projeto:

  1. Crie um novo diretório e navegue até ele.

  2. Para inicializar um novo projeto:

    1. Execute gradle init:

      gradle init --type java-library
      
    2. Crie a pasta WEB-INF:

      mkdir -p src/main/webapp/WEB-INF
      
    3. Crie a pasta appengine:

      mkdir -p src/main/appengine
      
  3. Remova os arquivos de stub gerados por gradle init:

    rm src/main/java/Library.java src/test/java/LibraryTest.java
    
  4. Adicione o seguinte ao arquivo build.gradle para adicionar tarefas do Gradle do App Engine, repositórios Maven, o plug-in do Gradle do App Engine, dependências e configuração de tarefas:

    buildscript {      // Configuration for building
      repositories {
        jcenter()      // Bintray's repository - a fast Maven Central mirror & more
        mavenCentral()
      }
      dependencies {
        classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.2.0' // Latest 1.x.x release
        classpath 'org.akhikhl.gretty:gretty:+'
      }
    }
    
    repositories {   // repositories for JARs you access in your code
      maven {
        url 'https://maven-central.storage.googleapis.com'             // Google's mirror of Maven Central
      }
    
    //maven {
    //  url 'https://oss.sonatype.org/content/repositories/snapshots' // SNAPSHOT repository if needed
    //}
    
      jcenter()
      mavenCentral()
    }
    
    apply plugin: 'java'
    apply plugin: 'war'
    apply plugin: 'org.akhikhl.gretty'
    apply plugin: 'com.google.cloud.tools.appengine'
    
    dependencies {
      providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
      providedCompile 'com.google.appengine:appengine:+'
    // Add your dependencies here.
    
    }
    
    gretty {
        httpPort = 8080
        contextPath = '/'
        servletContainer = 'jetty9'  // What App Engine Flexible uses
    }
    
    appengine {
    
      deploy {   // deploy configuration
        stopPreviousVersion = true  // default - stop the current version
        promote = true              // default - & make this the current version
        projectId = 'GCLOUD_CONFIG' // delegate to project in gcloud config
        version = 'GCLOUD_CONFIG'   // delegate to gcloud to generate a version
      }
    
    }
    
    group = 'com.example.appengine'   // Generated output GroupId
    version = '1.0-SNAPSHOT'          // Version in generated output
    
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
  5. Você também precisa adicionar ao projeto os arquivos abaixo, usando um editor de texto ou um ambiente de desenvolvimento integrado (IDE, na sigla em inglês):

Consulte o início rápido para uma visão geral de um projeto Java do App Engine.

Como fazer o download do app Hello World

  1. Clone o repositório do app de amostra Hello World na máquina local:

    git clone https://github.com/GoogleCloudPlatform/getting-started-java.git
    

    Também é possível fazer o download do exemplo como um arquivo zip e extraí-lo.

  2. Acesse o diretório que contém o código de amostra:

    cd getting-started-java/helloworld-servlet
    

Testar o aplicativo com o servidor de desenvolvimento

  1. Em seu projeto, para acessar os recursos do Google durante a execução local, configure as credenciais padrão do aplicativo executando:

    gcloud auth application-default login
    
  2. Mude para a raiz do diretório do aplicativo.

  3. Durante a fase de desenvolvimento, é possível executar e testar o aplicativo a qualquer momento no servidor de desenvolvimento invocando o Gradle:

    gradle jettyRun
    

    Você também pode executar o Gradle sem instalá-lo, basta usar o wrapper do Gradle.

  4. Aguarde a inicialização do servidor. Com o servidor iniciado e o aplicativo em execução, você vê uma mensagem semelhante a esta:

    :prepareInplaceWebAppFolder
    :createInplaceWebAppFolder
    :compileJava
    :processResources UP-TO-DATE
    :classes
    :prepareInplaceWebAppClasses
    :prepareInplaceWebApp
    :jettyRun
    17:40:05 INFO  Jetty 9.2.15.v20160210 started and listening on port 8080
    17:40:05 INFO   runs at:
    17:40:05 INFO    http://localhost:8080/
    
  5. Veja seu app em execução em http://localhost:8080.

Para saber mais sobre o plug-in do Gretty, consulte Configuração do Gretty e Tarefas do Gretty (links em inglês).

Como implantar o aplicativo

Para implantar o aplicativo:

gradle appengineDeploy

A tarefa appengineDeploy e todas as outras tarefas do Gradle têm propriedades associadas que você pode usar. Para uma lista completa de tarefas e propriedades, consulte Tarefas e propriedades do Gradle do App Engine.

Como usar o wrapper do Gradle

O Gradle oferece um mecanismo para download e execução da versão obrigatória dele sem instalação:

Linux/macOS

  1. Mude para o diretório do código de amostra.

  2. Execute gradlew:

    ./gradlew jettyRun
    

Windows

  1. Mude para o diretório do código de amostra.

  2. Execute gradlew:

    ./gradlew.bat jettyRun
    

Informações extras sobre o Gradle podem ser encontradas em Tarefas e propriedades do Gradle do App Engine.

A seguir