Gradle - Gambaran Umum
"Gradle is an open source build automation system"
Ant dan Maven berbagi kesuksesan yang cukup besar di pasar JAWA. Ant adalah alat build pertama yang dirilis pada tahun 2000 dan dikembangkan berdasarkan ide pemrograman prosedural. Kemudian ditingkatkan dengan kemampuan untuk menerima plug-in dan manajemen ketergantungan melalui jaringan dengan bantuan Apache-IVY. Kelemahan utama adalah XML sebagai format untuk menulis skrip build, menjadi hierarki tidak baik untuk pemrograman prosedural, dan XML cenderung menjadi besar yang tidak terkelola.
Maven diperkenalkan pada tahun 2004. Ia datang dengan banyak peningkatan dibandingkan ANT. Ini mengubah strukturnya dan terus menggunakan XML untuk menulis spesifikasi build. Maven mengandalkan konvensi dan dapat mengunduh dependensi melalui jaringan. Manfaat utama maven adalah siklus hidupnya. Saat mengikuti siklus hidup yang sama untuk beberapa proyek secara terus menerus. Ini menimbulkan biaya fleksibilitas. Maven juga menghadapi beberapa masalah dalam manajemen ketergantungan. Itu tidak menangani konflik dengan baik antara versi pustaka yang sama dan skrip build kustomisasi yang kompleks sebenarnya lebih sulit untuk ditulis di maven daripada di ANT.
Akhirnya Gradle muncul pada tahun 2012. Gradle membawa beberapa fitur efisien dari kedua alat tersebut.
Fitur Gradle
Berikut ini adalah daftar fitur yang disediakan Gradle.
Declarative builds and build-by-convention- Gradle tersedia dengan Domain Specific Language (DSL) terpisah berdasarkan bahasa Groovy. Gradle menyediakan elemen bahasa deklaratif. Elemen tersebut juga menyediakan dukungan build-by-convention untuk Java, Groovy, OSGI, Web, dan Scala.
Language for dependency based programming - Bahasa deklaratif terletak di atas grafik tugas tujuan umum, yang dapat Anda manfaatkan sepenuhnya dalam build Anda.
Structure your build- Gradle akhirnya memungkinkan Anda menerapkan prinsip desain umum pada bangunan Anda. Ini akan memberi Anda struktur yang sempurna untuk dibangun, sehingga Anda dapat merancang bangunan yang terstruktur dengan baik dan mudah dipelihara dan dipahami.
Deep API - Menggunakan API ini, Anda dapat memantau dan menyesuaikan konfigurasi dan perilaku eksekusi ke intinya.
Gradle scales - Gradle dapat dengan mudah meningkatkan produktivitasnya, dari build proyek tunggal dan sederhana hingga build multi-project perusahaan besar.
Multi-project builds- Dukungan Gradle untuk build multi-project dan mendukung build parsial. Jika Anda membangun subproyek, Gradle akan menangani pembuatan semua subproyek yang bergantung padanya.
Different ways to manage your builds - Gradle mendukung berbagai strategi untuk mengelola dependensi Anda.
Gradle is the first build integration tool- Gradle didukung penuh untuk tugas ANT Anda, Maven dan infrastruktur repositori lvy untuk menerbitkan dan mengambil dependensi. Gradle juga menyediakan konverter untuk mengubah Maven pom.xml menjadi skrip Gradle.
Ease of migration- Gradle dapat dengan mudah beradaptasi dengan struktur apa pun yang Anda miliki. Oleh karena itu, Anda selalu dapat mengembangkan build Gradle di cabang yang sama tempat Anda dapat membuat skrip langsung.
Gradle Wrapper- Gradle Wrapper memungkinkan Anda menjalankan build Gradle pada mesin yang tidak menginstal Gradle. Ini berguna untuk integrasi server yang berkelanjutan.
Free open source - Gradle adalah proyek sumber terbuka, dan dilisensikan di bawah Lisensi Perangkat Lunak Apache (ASL).
Groovy- Skrip build Gradle ditulis dalam Groovy. Seluruh desain Gradle diorientasikan untuk digunakan sebagai bahasa, bukan sebagai kerangka kerja yang kaku. Dan Groovy memungkinkan Anda menulis skrip Anda sendiri dengan beberapa abstraksi. Seluruh Gradle API sepenuhnya dirancang dalam bahasa Groovy.
Mengapa Groovy?
Gradle API lengkap dirancang menggunakan bahasa Groovy. Ini adalah keuntungan dari DSL internal dibandingkan XML. Gradle adalah alat pembangunan tujuan umum pada intinya; fokus utamanya adalah proyek Java. Dalam project seperti itu, anggota tim akan sangat memahami Java dan lebih baik build dibuat setransparan mungkin untuk semua anggota tim.
Bahasa seperti Python, Groovy, atau Ruby lebih baik untuk framework build. Mengapa Groovy dipilih adalah, karena Groovy menawarkan transparansi terbesar bagi orang-orang yang menggunakan Java. Sintaks dasar Groovy sama dengan Java. Groovy memberikan lebih banyak lagi di atas itu.