Menganalisis dan mengotomatiskan upgrade dependensi

Ingin menyederhanakan pengelolaan dependensi? Menambahkan beberapa alat ke proses Anda dapat mempercepat proses dan mengarahkan Anda ke area yang mungkin memerlukan perhatian yang lebih besar.

Upgrade versi otomatis

Android Studio menandai versi library yang sudah tidak berlaku di editor, beserta perbaikan cepat untuk mengupgradenya. Namun, hal ini memerlukan pemeriksaan rutin terhadap semua file build Anda.

Ada sejumlah alat pihak ketiga yang dapat mengotomatiskan proses, mengupgrade file build, dan secara opsional membuat permintaan pull untuk perubahan. Alat ini menemukan dan mengupdate ke versi terbaru yang tersedia dari setiap dependensi, tetapi Anda masih perlu menganalisis hasilnya sebelum rilis untuk memastikan kompatibilitas perilaku. Beberapa contoh populernya meliputi:

Memeriksa upgrade yang tersedia

Plugin versi Gradle memberi Anda lebih banyak kontrol upgrade manual. Menjalankan tugas dependencyUpdates-nya (melalui ./gradlew :dependencyUpdates) akan menghasilkan laporan dependensi library versi yang lebih baru. Hal ini berguna untuk memeriksa status library dan secara manual menargetkan library yang ingin Anda upgrade pada waktu tertentu.

Hal ini dapat sangat berguna jika Anda menggunakan pendekatan kustom untuk menentukan versi dependensi, bukan katalog versi.

Melaporkan perubahan dependensi

Mengupgrade versi library yang Anda gunakan secara langsung dapat memiliki dampak yang jauh lebih luas pada aplikasi Anda. Setiap library yang Anda gunakan mungkin memerlukan dependensi library lain, yang membentuk grafik dependensi transitif yang lebih besar.

Dependency guard mengekspos perubahan pada grafik tersebut di antara versi aplikasi atau library Anda. Alat ini dapat menjadi alat yang sangat berharga untuk analisis upgrade, yang memastikan Anda mempertimbangkan upgrade langsung dan tidak langsung.

Mendeteksi dependensi yang tidak digunakan dan disalahgunakan

Menjaga build tetap sehat dapat meningkatkan kecepatan build dan memastikan aplikasi dan library Anda memiliki akses ke dependensi yang diperlukan. Plugin Gradle analisis dependensi memberi Anda alat untuk memeriksa dependensi, memeriksa penggunaan yang tepat dalam file build.

Laporannya mencakup:

  • Dependensi yang tidak digunakan
  • Dependensi transitif yang digunakan (Anda harus mendeklarasikannya secara eksplisit agar aplikasi dapat mengaksesnya jika dependensi langsung Anda berhenti menggunakannya)
  • Dependensi dideklarasikan dalam cakupan yang salah
  • Penggunaan beberapa plugin yang tidak perlu
  • Tampilan GraphViz dependensi Anda

Pengelolaan lisensi

Developer setiap library melisensikannya untuk Anda gunakan. Anda harus mematuhi persyaratan lisensinya atau Anda tidak dapat menggunakan library tersebut. Beberapa lisensi sangat permisif, sering kali hanya memerlukan pemberitahuan penggunaannya. Beberapa di antaranya dianggap "viral"; jika Anda menggunakan library tersebut, Anda harus menerapkan lisensi yang sama ke aplikasi atau library Anda.

Lisensi dapat berubah dengan rilis apa pun. Setiap kali mengupgrade, Anda harus memverifikasi bahwa dependensi yang Anda gunakan dilisensikan dengan cara yang kompatibel dengan aplikasi atau library Anda.

Melaporkan lisensi

Plugin Laporan Lisensi Gradle membantu dengan melaporkan lisensi semua dependensi Anda. Pastikan untuk memeriksa laporan ini saat Anda mengupgrade dependensi apa pun. Pastikan lisensi tersebut kompatibel dengan persyaratan Anda, dan pastikan Anda memenuhi persyaratan yang diwajibkan.

Membuat pemberitahuan lisensi

Persyaratan pemberian lisensi sering kali memerlukan pemberitahuan yang dapat diakses oleh pengguna aplikasi atau konsumen library. Plugin Lisensi Gradle menghasilkan data atau HTML untuk menampilkan pemberitahuan tersebut di aplikasi Anda.

Meskipun otomatisasi ini akan mengotomatiskan sebagian besar persyaratan pemberitahuan Anda, tindakan ini tidak melaporkan lisensi resource (misalnya, lisensi yang diperlukan untuk font, gambar, atau suara) atau lisensi cuplikan kode yang Anda salin dari internet. Anda perlu melacak dan melaporkan penggunaan tersebut secara manual.