Menggunakan Gradle dan plugin App Engine

Gradle adalah alat otomatisasi build open source yang berfokus pada fleksibilitas dan performa. App Engine menyediakan plugin Gradle yang dapat Anda gunakan untuk membangun dan men-deploy aplikasi ke App Engine. Contoh kode dalam panduan ini menggunakan Gradle versi 8.

Sebelum memulai

  1. Instal Java

  2. Menginstal Gradle

  3. Instal git

  4. Jika belum melakukannya, ikuti langkah-langkah dalam panduan ini untuk mendownload gcloud CLI, membuat project Google Cloud, dan menginisialisasi aplikasi App Engine Anda.

  5. Instal komponen app-engine-java gcloud CLI:

    gcloud components install app-engine-java
    

Membuat project Gradle baru

Anda dapat membuat project Gradle baru dari awal menggunakan shell. Atau, untuk mencoba plugin, Anda dapat mendownload, menjalankan secara lokal, dan men-deploy project halo dunia.

Untuk membuat project baru:

  1. Buat direktori baru dan buka direktori tersebut.

  2. Untuk melakukan inisialisasi project baru:

    1. Jalankan gradle init:

      gradle init --type java-application
      

      Anda akan diminta untuk menjawab pertanyaan:

      • Masukkan versi Java target (min: 7, default: 21): 21
      • Pilih struktur aplikasi: 1 untuk Project aplikasi tunggal
      • Pilih DSL skrip build: 2 (untuk Groovy)
      • Pilih framework pengujian: 1 (untuk JUnit 4)
      • Membuat build menggunakan API dan perilaku baru: tidak
    2. Buat folder WEB-INF:

      mkdir -p app/src/main/webapp/WEB-INF
      
    3. Buat folder appengine:

      mkdir -p app/src/main/appengine
      
  3. Hapus file stub yang dihasilkan oleh gradle init:

    rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
    
  4. Tambahkan kode berikut ke file app/build.gradle Anda untuk menambahkan tugas Gradle App Engine, repositori Maven, plugin Gradle App Engine, dependensi, dan konfigurasi tugas:

    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.5.0'
        classpath 'org.akhikhl.gretty:gretty:+'
      }
    }
    
    repositories {   // repositories for Jar's you access in your code
      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 {
        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
        }
      }
    
    group = 'com.example.appengine'   // Generated output GroupId
    version = '1.0-SNAPSHOT'          // Version in generated output
    
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
  5. Anda juga perlu menambahkan file berikut ke project menggunakan editor teks atau Integrated Development Environment (IDE):

Baca artikel Menyiapkan lingkungan pengembangan Anda untuk melihat ringkasan project Java App Engine.

Menguji aplikasi dengan server pengembangan

  1. Untuk mengakses resource Google dari project Anda saat berjalan secara lokal, tetapkan kredensial default aplikasi dengan menjalankan:

    gcloud auth application-default login
    
  2. Ubah ke root direktori aplikasi Anda.

  3. Selama fase pengembangan, Anda dapat menjalankan dan menguji aplikasi kapan saja di server pengembangan dengan memanggil Gradle:

    gradle jettyRun
    

    Anda juga dapat menjalankan Gradle tanpa menginstalnya dengan menggunakan wrapper Gradle.

  4. Tunggu hingga server dimulai. Server akan dimulai dengan aplikasi berjalan saat Anda melihat pesan yang mirip dengan ini:

    :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. Lihat aplikasi Anda berjalan di http://localhost:8080.

Untuk mempelajari plugin Gretty lebih lanjut, lihat Konfigurasi Gretty dan Tugas Gretty.

Men-deploy aplikasi Anda

Untuk men-deploy aplikasi Anda:

gradle appengineDeploy

Tugas appengineDeploy dan semua tugas Gradle lainnya memiliki properti terkait yang dapat Anda gunakan. Untuk mengetahui daftar lengkap tugas dan properti, lihat Tugas dan Properti Gradle App Engine.

Menggunakan wrapper Gradle

Gradle menyediakan mekanisme untuk mendownload dan menjalankan versi Gradle yang diperlukan tanpa penginstalan:

Linux/macOS

  1. Ubah ke direktori kode contoh.

  2. Jalankan gradlew:

    ./gradlew jettyRun
    

Windows

  1. Ubah ke direktori kode contoh.

  2. Jalankan gradlew:

    ./gradlew.bat jettyRun
    

Informasi tambahan tentang Gradle dapat ditemukan di Tugas dan Properti Gradle App Engine.

Langkah berikutnya