Seperti judul blog ini, yang saya tuliskan ini adalah sesuatu yang sia-sia. Anda bisa langsung menggunakan aplikasi seperti IntelliJ atau Eclipse. Dengan penyunting itu, Anda tinggal membuat “New Project” dan semuanya sudah terkonfigurasi.

Tapi, mungkin Anda salah satu elitis yang lebih suka menggunakan terminal. Atau, Anda ingin tahu cara kerja Gradle sehingga Anda dapat setidaknya sedikit paham kalau ada masalah. Kalau saya, saya hanya sedang iseng sebelum menunggu waktunya tiba untuk menonton Warcraft di bioskop.

Proyek hanya Sejauh Direktori Kosong

Mari buat proyek baru. Caranya, buat direktori kosong dan dua buah berkas Gradle: build.gradle dan settings.gradle.

mkdir percuma && cd percuma
touch build.gradle settings.gradle

Mari namakan proyek kita ini “proyekPercuma”.

echo "rootProject.name = 'percuma'" >> settings.gradle

Secara umum, ini sudah siap. Tapi tunggu dulu, Kisanak! Kisanak tidak akan pernah lengkap ilmu bila tanpa jurus Monyet Membungkus Pisang!

Proyek hanya Sejauh Pembungkus

Java adalah sebuah pustaka yang sering kali berdiri sendiri. Hal ini karena sering kali distribusi menggunakan versi yang lawas. Bayangkan, Kisanak! Ini sudah 2016, namun Kubuntu Xenial (16.04) yang saya pakai masih menggunakan Gradle versi 2.10.

sudo apt-get install -y gradle && gradle -v

Hasilnya:

------------------------------------------------------------
Gradle 2.10
------------------------------------------------------------

Build time:   2016-01-26 15:17:49 UTC
Build number: none
Revision:     UNKNOWN

Groovy:       2.4.5
Ant:          Apache Ant(TM) version 1.9.6 compiled on July 8 2015
JVM:          1.8.0_91 (Oracle Corporation 25.91-b14)
OS:           Linux 4.4.0-22-generic amd64

Astaga! Padahal, versi terbaru sudah ada lama sebelum Xenial. Belum lagi, beberapa pustaka terbaru memanfaatkan Gradle versi terbaru.

Supaya kita menggunakan Gradle terbaru, mari buat skrip pembungkus Gradle. Saat penulisan Gradle terbaru versi 2.13.

gradle wrapper --gradle-version 2.13

Anda bisa lakukan ini untuk memperbaharui Gradle pada proyek yang lama ke versi yang terbaru. Sekarang lihat versinya:

$ ./gradlew -v

------------------------------------------------------------
Gradle 2.13
------------------------------------------------------------

Build time:   2016-04-25 04:10:10 UTC
Build number: none
Revision:     3b427b1481e46232107303c90be7b05079b05b1c

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_91 (Oracle Corporation 25.91-b14)
OS:           Linux 4.4.0-22-generic amd64

Selesai, deh.

Tunggu Dulu, Kisanak!

Mari buat sebuah proyek Java sederhana.

cat >> build.gradle << EOF
buildscript {
  repositories {
    jcenter()
  }
}

apply plugin: 'java'
apply plugin: 'application'
EOF

Lalu buat struktur direktori Java (kode sumber dan sumber daya):

mkdir -p src/main/java/ && mkdir -p src/main/resources

Sebagai pemrogram Java yang baik, seharusnya kita menaruh berkas Java pada paket-paket. Mari buat direktori paket Java.

mkdir -p src/main/java/aja/jp/percuma

Buat sebuah kelas sederhana.

cat > src/main/java/aja/jp/percuma/TestMain.java << EOF
package aja.jp.percuma;

class TestMain {
  public static void main (String ... args) {
    java.util.logging.Logger.getLogger(TestMain.class.getName()).info("Hello, world!");
  }
}
EOF

Tambahkan berkas Java ini sebagai kelas utama dalam proyek percuma.

echo "mainClassName = 'aja.jp.percuma.TestMain'" >> build.gradle

Sekarang tinggal dicoba jalankan:

./gradlew -q run

Saya sengaja tambahkan “-q” agar keluaran dari Gradle tidak keluar. Sehingga, hasilnya langsung keluaran dari aplikasi, yakni:

Jun 08, 2016 5:20:53 PM aja.jp.percuma.TestMain main
INFO: Hello, world!

Kalau tanpa “-q” dia akan berisik seperti ini:

:compileJava
:processResources UP-TO-DATE
:classes
:run
Jun 08, 2016 5:23:40 PM aja.jp.percuma.TestMain main
INFO: Hello, world!

BUILD SUCCESSFUL

Total time: 8.079 secs

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.13/userguide/gradle_daemon.html

Bersih-bersih

Kadang kalau proyek sudah besar dan kompleks, kita perlu membersihkan hasil kompilasi secara manual:

./gradlew clean

Mau buat distribusi supaya keren?

./gradlew installDist

Sehingga, kita jalankan dengan:

./build/install/percuma/bin/percuma

Ada .bat juga di situ untuk menjalankan di sistem terlarang.

Mau publikasikan hasil pekerjaan?

./gradlew distZip

Berkasnya ada di ./build/distributions/percuma.zip

Mau tahu perintah Gradle yang lain?

./gradlew tasks

Selebihnya terserah Anda. Gampang, ‘kan?

Bacaan Lebih Lanjut