Halaman ini menjelaskan cara menggunakan Cloud Build untuk mem-build, menguji, dan menyimpan aplikasi berbasis Java dalam container, mengupload image container ke Artifact Registry, dan membuat asal build.
Sebelum memulai
- Memahami cara membuat aplikasi berbasis Java.
- Siapkan project Java Anda, termasuk Dockerfile.
- Memiliki repositori Docker di Artifact Registry, atau membuat repositori baru.
- Pahami cara menulis file konfigurasi Cloud Build.
- Untuk menjalankan perintah gclouddi halaman ini, instal Google Cloud CLI.
Menggunakan gambar maven atau gradle
Anda dapat mengonfigurasi Cloud Build untuk mem-build aplikasi Java menggunakan image maven atau image gradle dari Docker Hub.
maven
Untuk menjalankan tugas dalam image maven, tambahkan langkah ke konfigurasi build dengan kolom berikut:
- name: Tetapkan nilai kolom ini ke- mavenatau- maven:<tag>, dengan tag mewakili versi. Jika Anda tidak menentukan tag image, Cloud Build akan menggunakan image- latestsecara default.
- entrypoint: Menetapkan kolom ini akan mengganti titik entri default gambar yang dirujuk di- name. Tetapkan nilai kolom ini ke- mvnuntuk memanggil- mvnsebagai titik entri langkah build dan menjalankan perintah- mvn.
- args: Kolom- argsdari langkah build mengambil daftar argumen dan meneruskannya ke image yang dirujuk oleh kolom- name.
Langkah build berikut menentukan entrypoint untuk image maven
yang diberi tag sebagai 3.3-jdk-8 dan mencetak versi alat build:
steps:
- name: maven:3.3-jdk-8
  entrypoint: mvn
  args: ['--version']
gradle
Untuk menjalankan tugas dalam image gradle, tambahkan langkah ke konfigurasi build dengan kolom berikut:
- name: Tetapkan nilai kolom ini ke- gradleatau- gradle:<tag>, dengan tag mewakili versi. Jika Anda tidak menentukan tag image, Cloud Build akan menggunakan image- latestsecara default.
- entrypoint: Menetapkan kolom ini akan mengganti titik entri default gambar yang dirujuk di- name. Tetapkan nilai kolom ini ke- gradleuntuk memanggil- gradlesebagai titik entri langkah build dan menjalankan perintah- gradle.
- args: Kolom- argsdari langkah build mengambil daftar argumen dan meneruskannya ke image yang dirujuk oleh kolom- name.
Langkah build berikut menentukan entrypoint untuk image gradle
yang diberi tag sebagai 5.6.2-jdk8 dan mencetak versi alat build:
steps:
- name: gradle:5.6.2-jdk8
  entrypoint: gradle
  args: ['--version']
Mengonfigurasi build Java
- Di direktori utama project, buat file konfigurasi build bernama - cloudbuild.yaml.
- Menjalankan pengujian: - mavendan- gradlemenyediakan- maven testdan- gradle test, yang mendownload dependensi, mem-build aplikasi, dan menjalankan pengujian apa pun yang ditentukan dalam kode sumber Anda. Kolom- argsdari langkah build mengambil daftar argumen dan meneruskannya ke gambar yang direferensikan oleh kolom- name.- Dalam file konfigurasi build, tambahkan - testke kolom- argsuntuk memanggil- testdalam- mavendan- gradle:- maven- steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['test']- gradle- steps: - name: gradle:5.6.2-jdk8 entrypoint: gradle args: ['test']
- Aplikasi paket: Untuk memaketkan aplikasi ke dalam file JAR untuk image - maven, tentukan perintah- packagedi kolom- args. Perintah- packagemem-build file JAR di- /workspace/target/.- Untuk memaketkan aplikasi ke dalam file JAR untuk image - gradle, tentukan perintah- assembledi kolom- args. Perintah- assemblemem-build file JAR di- workspace/build/libs.- Langkah build berikut mengemas aplikasi Java Anda: - maven- steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['package','-Dmaven.test.skip=true']- gradle- steps: - name: gradle:5.6.2-jdk8 entrypoint: gradle args: ['assemble']
- Membuat container aplikasi: Cloud Build menyediakan image Docker bawaan yang dapat Anda gunakan untuk membuat container aplikasi Java. Untuk membuat penampung aplikasi Java, dalam file konfigurasi build: - Tambahkan kolom namedan tentukan image Docker bawaan digcr.io/cloud-builders/docker.
- Tambahkan kolom argsdan tentukan argumenbuild, termasuk nama image container yang akan di-build, dan jalur ke artefak build Anda.
- Tambahkan kolom imagesuntuk mengirim image container yang telah di-build ke Artifact Registry.
- Opsional: Tambahkan - requestedVerifyOption: VERIFIEDdalam kolom- optionsdi file konfigurasi build untuk mengaktifkan pembuatan provenance Supply chain Levels for Software Artifacts (SLSA).
 - Langkah build berikut akan menempatkan aplikasi Anda ke dalam container, mengirim image container ke Artifact Registry, dan membuat informasi asal build: - maven- steps: - name: gcr.io/cloud-builders/docker args: ['build', '-t', 'location-docker.pkg.dev/project-id/repository/image', '--build-arg=JAR_FILE=target/build-artifact', '.'] images: ['location-docker.pkg.dev/project-id/repository/image']- gradle- steps: - name: gcr.io/cloud-builders/docker args: ['build', '-t', 'location-docker.pkg.dev/project-id/repository/image', '--build-arg=JAR_FILE=build/libs/build-artifact', '.'] images: ['location-docker.pkg.dev/project-id/repository/image']- Dengan keterangan: - location: lokasi regional atau multi-regional untuk repositori Anda.
- project-id: ID project Google Cloud Anda.
- repository: nama Artifact Registry repositori Anda.
- image: nama image container Anda.
- build-artifact: nama file JAR yang dibuat dari langkah build.
 
- Tambahkan kolom 
- Mulai build: Setelah file konfigurasi build siap, mulai build dengan memasukkan perintah berikut di terminal: - gcloud builds submit --region=REGION --config config-file-path source-directory- Dengan keterangan: - config-file-path: jalur ke file konfigurasi build Anda. Dalam contoh ini,
file konfigurasi build diberi nama cloudbuild.yaml.
- source-directory: jalur atau URL ke kode sumber Anda.
- REGION: salah satu region build yang didukung.
 - Jika Anda tidak menentukan config-file-path dan source-directory dalam perintah - gcloud builds submit, Cloud Build akan mengasumsikan bahwa file konfigurasi dan kode sumber berada di direktori kerja saat ini.- Setelah build selesai, Anda dapat melihat detail repositori di Artifact Registry. - Anda juga dapat melihat metadata asal build dan memvalidasi asal. 
- config-file-path: jalur ke file konfigurasi build Anda. Dalam contoh ini,
file konfigurasi build diberi nama 
Contoh kode
Berikut beberapa contoh repositori yang dapat Anda gunakan untuk mem-build aplikasi Java, yang masing-masing berisi aplikasi contoh dan file konfigurasi build untuk mem-build dan menguji aplikasi tersebut:
- maven-example: Aplikasi Java dan contoh file konfigurasi build untuk mem-build dan menguji
aplikasi dengan mvn.
- gradle-example: Aplikasi Java dan contoh file konfigurasi build untuk mem-build dan menguji
aplikasi dengan gradle.
Langkah berikutnya
- Pelajari cara melihat hasil build.
- Pelajari cara menjaga keamanan build.
- Pelajari cara mem-build aplikasi Java mandiri.
- Pelajari cara men-deploy aplikasi di Cloud Run.
- Pelajari cara men-deploy aplikasi di GKE.
- Pelajari cara memecahkan masalah error build.