Pengembang membuat hidup lebih mudah bagi orang, sementara Gradle membuatnya lebih mudah bagi pengembang. Jika Anda menulis di Android, artikel ini untuk Anda. Baca tentang binatang seperti apa Gradle ini (spoiler: dia gajah), dan juga cara bekerja dengannya.
Gradle adalah sistem build otomatis yang digunakan untuk menyederhanakan bekerja dengan Java. Menggunakan alat bersyarat (bersyarat), ini membantu pengembang membangun produk yang tepat tanpa kehilangan keunikannya. Bagaimanapun, proses bekerja dengan Gradle bukan hanya pilihan templat. Tetapi hal pertama yang pertama.

Tempat mengunduh Gradle
Anda dapat mengunduh Gradle di situs web resmi . Kami menyarankan mengunduh dan menginstal semuanya secara manual (agar kehidupan tidak terasa seperti raspberry). Untuk instruksi dan semua tautan yang diperlukan, lihat Menginstal Gradle> Menginstal Secara Manual . Ngomong-ngomong, kami sarankan membaca semuanya. Itu saja. Serius.
Pada halaman ini Anda perlu memilih versi sistem dan klik "hanya biner". Kemudian - unzip arsip zip dan atur variabel lingkungan PATH seperti dijelaskan dalam instruksi. Jika semuanya dilakukan dengan benar, setelah instalasi, perintah gradle -v akan menampilkan versi sistem yang dipilih.
Terkadang ternyata selama definisi, sistem menemukan Gradle di tempat yang tidak terduga. Di Windows, ini diselesaikan sebagai berikut:
untuk% i in (gradle.bat) lakukan echo . % ~ $ PATH: i
Cara bekerja dengan Gradle
Gradle tidak spesifik platform. Selain itu, sistem menggunakan bahasa pemrograman yang berbeda. Yang paling populer adalah Groovy DSL dan Kotlin (tetapi Anda dapat menulis tentang yang lain). Opsi pertama akan digunakan dalam artikel, karena ini adalah bahasa deskripsi tugas standar di Gradle.
Sebelum Anda mulai, perhatikan ketentuan: "task" dan "plug-in", lagi. Lagi pula, semua pekerjaan dengan sistem dibangun di atasnya. Plugin menyediakan dan membuat tugas. Tugas adalah tindakan yang perlu dilakukan. Semuanya sangat sederhana.
Anda dapat membaca lebih lanjut tentang ini dalam instruksi untuk plug-in: JavaCompile (tambahkan tugas baru), SourceSet (tambahkan objek domain baru). Plugin juga berfungsi dengan konvensi dan memperluas objek. Misalnya, menggunakan plugin, Anda dapat menambahkan elemen DSL baru dan / atau mengonfigurasinya.
Set "Core Plugins" secara otomatis dibuat ketika Anda menginstal Gradle. Pada tahap pertama, disarankan untuk menggunakan kategori "Utility", yaitu plugin "Build Init Plugin". Ini memberikan tugas untuk menginisialisasi proyek dalam sistem. Anda dapat memilih jenis proyek dari daftar di situs.
Biarkan itu menjadi aplikasi java .
Tugas: gradit init --type java-application
Setelah itu, file baru akan muncul di folder. Di antara mereka:
- folder gradle (perhatian, bukan .gradle) dan file gradlew.bat adalah pembungkus, pembungkus;
- file build.gradle - skrip tempat pustaka, kerangka kerja, plugin, dan tugas proyek tertentu ditunjukkan.
File terakhir akan menampilkan bagian plugin. Plugin ini sudah memiliki tugas yang dilampirkan padanya. Daftar mereka dapat dilihat menggunakan perintah tugas gradle.
Tugasnya
Ditampilkan dalam blok menurut fungsinya. Masing-masing diberikan deskripsi singkat. Pemahaman membutuhkan pengetahuan bahasa Inggris di tingkat dasar. Jika Anda tidak berada di grup ini, penerjemah apa pun akan melakukannya. Tidak ada konstruksi bahasa yang rumit di build.gradle.
Setelah memilih tugas dan penyelesaiannya yang berhasil, Anda akan melihat tulisan hijau "BUILD SUKSES" di bagian bawah. Ini berarti (Anda beruntung) semuanya berjalan lancar. Juga di bagian bawah sistem akan memberikan laporan singkat.
Jika statusnya "dieksekusi" - tugasnya benar-benar selesai. Jika "up-to-date" - tidak. Ini tidak berarti bahwa beberapa jenis kegagalan telah terjadi. Dalam kasus status seperti itu, tugas pada prinsipnya tidak memerlukan solusi, mis., Objeknya sudah mutakhir.
Ini terjadi karena Gradle secara otomatis menghasilkan " Pemeriksaan mutakhir " - bangunan tambahan yang tujuannya adalah untuk mengoptimalkan sistem. Oleh karena itu, tugas yang sudah selesai atau tidak memerlukan tindakan tidak sedang dikerjakan.
Anda dapat menonaktifkan bangunan ini. Secara manual. Untuk melakukan ini, Anda harus menyelesaikan tugas dengan flag --rerun-task. Jika semuanya dilakukan dengan benar, status semua tugas akan berubah menjadi "dieksekusi".
Gradle juga memungkinkan Anda untuk melihat log di berbagai tingkatan. Misalnya, perintah gradle run -i akan memungkinkan Anda membaca pesan informasi tentang operasi sistem, perintah run -q akan mengaktifkan mode diam, jalankan -d akan menampilkan semua pesan log, dll. Daftar log yang lengkap dan informasi tambahan tentang sistem logging dapat ditemukan di sini .
Ketergantungan
Manajemen Ketergantungan - Menentukan perpustakaan atau kerangka kerja yang dibutuhkan proyek. Gradle harus menyertakan dependensi ini di beberapa titik untuk membangun aplikasi dengan benar (atau secara umum) di akhir. Perintah gradle init untuk aplikasi-java dalam skrip build secara otomatis memanggil informasi tentang 2 konfigurasi.
Implementasi bertanggung jawab atas transitivitas: ketergantungannya tidak akan terlihat oleh pengguna. TestImplementation memperluas konfigurasi sebelumnya. Dengan demikian, mereka bekerja bersama.
Untuk lebih memahami dependensi dan cara bekerja dengannya, baca bab " Mengelola Konfigurasi Ketergantungan " dalam manual resmi. Omong-omong, " API dan pemisahan implementasi " menjelaskan secara rinci tentang API dan implementasi, serta perbedaan di antara mereka.
Jika Anda perlu menyertakan ketergantungan pada artefak akhir, Anda harus menentukan semua informasi yang diperlukan untuk manifes file jar dalam pengaturan tugas jar. Bagaimana melakukannya dengan benar, Anda dapat melihat, misalnya, di sini .
Selanjutnya, Anda harus menyertakan dependensi dalam toples. Ini diperlukan untuk kompilasi.
Terlalu rumit? Gunakan " Plugin Shadow Gradle ".
Perintah dependensi polos gradle --console menampilkan daftar semua konfigurasi dan dependensinya dalam daftar. Sistem ini juga menawarkan pengembang filter yang mengecualikan dependensi dari daftar (dependensi plain-gradle | find "-") - beberapa lebih nyaman.
Jenis dependensi yang paling umum:
- eksternal - dimuat dari repositori eksternal;
- desain - tergantung pada modul dalam proyek tertentu;
- file - terhubung sebagai jar atau arsip aar.
Yang mana dari yang akan digunakan, pengembang memutuskan.
Untuk Java, semuanya didefinisikan dengan baik dalam manajemen Ketergantungan .
Peretasan seumur hidup
Terlepas dari kenyataan bahwa Gradle adalah sistem perakitan otomatis yang populer dan relevan, banyak orang memiliki masalah dengannya. Berikut adalah beberapa saran yang dapat membuat hidup lebih mudah bagi pengembang android:
Gunakan konsol. Menemukan perintah terkadang bermasalah, dan ketika Anda mengubah build.gradle, sistem mungkin macet atau, secara umum, memuat ulang proyek. Karena itu, para ahli merekomendasikan untuk memanggil Gradle langsung dari konsol.
Vrapper biasanya mengikuti proyek. Linux dan macOS dapat diakses secara langsung. Di Windows, panggil file kelelawar alih-alih pembungkus.
Gradle menyimpan cache selama 1 hari. Ini dapat dikonfigurasi ulang. Anda perlu mengedit kode:
// build.gradle configurations.all { resolutionStrategy.cacheChangingModulesFor - , 'hours' resolutionStrategy.cacheDynamicVersionsFor - , 'minutes' }
- βrefresh-dependencies - perintah yang berguna yang akan mulai memperbarui semua dependensi di Gradle. Mungkin berguna jika beberapa data dalam cache rusak, saat memverifikasi. Lebih mudah digunakan jika data cache rusak, karena diverifikasi dan diperbarui (jika berbeda).
Gunakan CI (Integrasi Berkelanjutan) ketika bekerja dengan sistem build otomatis. Biarkan tes unit berjalan untuk semua komitmen. Juga, para ahli merekomendasikan menghubungkan unit test. Ini bisa dilakukan di Android Studio.
Kombinasi ini akan mendeteksi kesalahan sebelumnya. Dan meskipun itu akan memperlambat proses startup, pengembang akan dapat bersantai di masa depan. Jadi, hack kehidupan untuk masa depan.
Coba lagi. Menakutkan (Kami juga) Sebenarnya, sinkronisasi tidak selalu harus segera dimulai kembali. Pertama, para ahli merekomendasikan untuk memeriksa sistem secara keseluruhan. Misalnya, menggunakan perintah sederhana apa pun - ini akan membantu untuk memahami apa peluang keberhasilan untuk sinkronisasi berikutnya.
Siapkan lingkungan pengembangan IntelliJ IDEA Anda dengan Gradle. Ini akan mengoptimalkan proses kerja, serta menggunakan daftar ajaib.
Kiat bagi mereka yang bekerja dengan Gradle dari baris perintah Android Studio. Periksa kesalahan "Memulai Daemon Gradle, 1 tidak kompatibel tidak dapat digunakan kembali" (# 68374709). Ini adalah momok dari sistem yang belum diperbaiki oleh pengembang.
Salah satu masalah utama Gradle adalah "Gradle build gagal". Kita bisa melakukannya tanpa kata-kata yang tidak perlu jika Anda sudah tahu ini. Jika tidak, semoga berhasil.

Namun, masalah utama Gradle berbeda. Waktu yang dibutuhkan sistem untuk membangun telah lama menjadi legenda (sangat menyedihkan) di kalangan spesialis. Tidak mungkin mempercepat pekerjaan, setidaknya tidak secara signifikan.
Jadi, Anda harus menunggu.
Anda dapat, misalnya, terbang ke suatu tempat ke ruang angkasa, seperti di Antar Bintang.

Kesimpulan
Gradle adalah solusi yang baik, terlepas dari segala kekurangannya. Perakitan otomatis akan menghemat waktu dan energi Anda (betapapun ironisnya bunyi setelah paragraf sebelumnya). Dan juga - untuk membuat aplikasi Anda lebih bersih. Sistem akan melihat kesalahan apa pun dan tidak akan membiarkan Anda menyelesaikan pekerjaan sampai diperbaiki (dengan cara apa pun).
