Pernahkah kalian mendengar istilah tentang Gradle? Bagi android developer, istilah ini tentu tidak asing, bahkan selalu ditemui saat mengembangkan suatu aplikasi android. Jadi, apa sebenarnya Gradle itu?
Aplikasi android dibangun menggunakan sistem Gradle Build dengan kode sumber terbuka. Setiap kita melakukan (re)build, ataupun mendeploy app kita ke emulator ataupun devices, Android Studio akan melakukan built terhadap source code kita berdasarkan konfigurasi yang ada pada file Gradle.
Supaya lebih jelas, kita mulai dari saat pertama kali membuat project di Android Studio.
Setelah membuat project baru, akan terbentuk tiga file utama Gradle yang dapat dilihat di panel kiri Android Studio.
Gradle Setting
Sebuah project merupakan kumpulan dari beberapa sub-projects yang dikonfigurasi pada Gradle. Daftar sub-projects dapat dilihat pada file settings.gradle
.
include ':app'
Syntax include
menunjukan bahwa folder app merupakan satu-satu nya sub-project yang terdaftar disini, jika kita ingin menambahkan library project kita juga harus menambahkannya ke dalam file settings.gradle
ini.
Top-Level Gradle Build
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Kode pada block buildscript
menunjukkan dimana Gradle harus mengunduh plugin yang diperlukan. Seperti yang terlihat diatas, secara default plugin akan diunduh dari repo jcenter
, repo lain yang juga bisa digunakan yaitu mavenCentral
.
Kode pada block allprojects
menunjukkan bahwa top-level project dan semua sub-projects yang terdaftar secara default akan mengunduh plugin/library dependencies dari repo jcenter
.
Kita dapat membuat task di Gradle sesuai kebutuhan, pada file build.gradle
ini terdapat sebuah clean task dengan perintah delete
. Pada kasus ini, task ini akan menghapus folder build
dari root project kita, dimana secara default itu adalah folder build
di top-level.
App Sub-Project Gradle Build
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "id.dekz.gradleexample"
minSdkVersion 21
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
}
Fungsi apply
digunakan untuk menambahkan plugin Android ke dalam build system.
Pada block dependencies
terdapat 3 baris kode. Baris pertama, filreTree dependency, menunjukkan bahwa semua file dengan ekstensi *.jar
didalam folder libs
akan di-compile.
Baris kedua memberitahu Gradle untuk mengunduh JUnit
versi 4.12, fungsi testCompile
akan menempatkan kelas-kelas dari JUnit
di src/androidTest
dan src/test/java
(opsional) dan kita bisa menggunakannya untuk melakukan unit test.
Baris ketiga memberitahu Gradle untuk menambahkan library appcompat-v7 versi 24.2.0 dari Android Support Libraries. Library pendukung disini digunakan sebagai dependency saat melakukan compile.
Cukup sampai sini dulu untuk bagian 1, post ini akan dilanjutkan ke bagian 2. Stay Tuned!
Referensi
Gradle Recipes For Android by Ken Kousen