Cara memeriksa apakah ketergantungan gradle memiliki versi baru

232

Di Android Studio saat saya menggunakan +nomor versi (seperti com.android.support:recyclerview-v7:21.+) saya mendapat peringatan "Hindari menggunakan + dalam nomor versi". Ketika saya menggunakan nomor versi tertentu, saya tidak selalu dapat menggunakan versi terbaru. Saya memiliki banyak dependensi dalam proyek saya. Bagaimana cara saya memeriksa apakah dependensi memiliki versi yang lebih baru? Apakah ada plugin Android Studio - atau sesuatu seperti itu - untuk memberi tahu saya ketika ada versi ketergantungan yang lebih baru?

Sunting: Studio Android menyoroti perpustakaan dukungan android yang sudah ketinggalan zaman dan layanan Google play. Tetapi ini tidak tersedia untuk perpustakaan khusus lainnya.

masukkan deskripsi gambar di sini

osrl
sumber
Untuk pengembang yang memperbarui perpustakaan, lihat: Bagaimana memperbarui perpustakaan untuk versi baru di Bintray?
Suragch
2
Setidaknya di Android 3.0, pembaruan untuk perpustakaan khusus sekarang menunjukkan pemberitahuan yang sama seperti yang Anda miliki di gambar pertanyaan Anda untuk perpustakaan dukungan.
Suragch
@ Suragch ini tidak berfungsi untuk beberapa dependensi bagi saya di android studio 3.0.1
Rémy
Kita dapat menggunakan gradleplease.appspot.com untuk memeriksa versi perpustakaan baru
Alex Kisel

Jawaban:

187

Ini sekarang terintegrasi ke Android Studio sebagai pemeriksaan Lint. Anda dapat mengaktifkannya di sini:

Pengaturan> Editor> Inspeksi> "Versi Perpustakaan Baru Tersedia"

Deskripsi untuk inspeksi ini:

Versi Perpustakaan Baru Tersedia

Detektor ini memeriksa dengan repositori pusat untuk melihat apakah ada versi yang lebih baru tersedia untuk dependensi yang digunakan oleh proyek ini. Ini mirip dengan pemeriksaan GradleDependency, yang memeriksa versi yang lebih baru yang tersedia di alat dan pustaka SDK Android, tetapi ini berfungsi dengan setiap ketergantungan MavenCentral, dan terhubung ke perpustakaan setiap saat, yang membuatnya lebih fleksibel tetapi juga jauh lebih lambat.

Karena pelambatan ini, saya bisa memperkenalkannya, saya sarankan untuk menjalankannya secara manual secara berkala, daripada selalu aktif. Anda dapat melakukannya dengan:

Analisis> "Jalankan Inspeksi Berdasarkan Nama"

Kemudian cari "Versi Perpustakaan Baru Tersedia", dan jalankan di modul Anda.

Sunting : Di atas seharusnya hanya berfungsi pada Android Studio 2.3. Jika Anda menggunakan versi lama (Anda harus memperbarui) yang berikut ini dapat membantu:

Perhatikan bahwa tampaknya Anda harus mengaktifkan inspeksi agar dapat menjalankannya secara manual - jadi (pada Android Studio 2.0 Beta 2) Anda perlu menemukan inspeksi dalam pengaturan, mengaktifkannya, lalu menjalankannya dengan nama, kemudian menonaktifkannya lagi ( untuk mendapatkan kembali kinerja sebelumnya).

Adam S
sumber
4
Saya tidak tahu apakah saya melakukan sesuatu yang salah tetapi itu tidak berhasil bagi saya
osrl
1
Ya sama bagi saya, ranah tidak ada di MavenCentral. Apakah versi retrofit Anda didefinisikan seperti ini? def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
Milik
1
dengan string versi yang ditentukan tidak dapat ditemukan. Itu dapat menemukan com.squareup.okhttp:okhttp:2.7.2. Juga pada2.0.0-beta4
osrl
2
Ini menunjukkan pembaruan yang tersedia di tab "Inspeksi", tetapi tidak menyorotnya sebagai peringatan di build.gradle. Saya belum menemukan solusi untuk itu.
Tiago
3
Harus kembali ke jawaban ini untuk melaporkan bahwa HANYA berfungsi untuk dependensi MavenCentral. Ini berarti repositori dari Jitpack atau sumber lain TIDAK diperbarui secara otomatis. Metode yang benar untuk mendapatkan versi terbaru dari SEMUA dependensi ada di jawaban ini [ stackoverflow.com/questions/28538824/… (di sini)
Ray Li
274

PEMBARUAN (23/5/18):

Versi Android Studio yang lebih baru tidak menunjukkan pembaruan versi dalam dialog Struktur Proyek. Sebaliknya, jawaban Adam-s adalah yang benar untuk Android Studio 3+

Analisis> "Jalankan Inspeksi Berdasarkan Nama"

Kemudian cari " Newer Library Versions Available"

CARA SEBELUMNYA:

Pada Android Studio 2.2, Project Structuredialog baru menunjukkan daftar dependensi yang digunakan aplikasi Anda dengan pembaruan yang tersedia dari repositori lokal DAN jarak jauh.

  • Aktifkan dengan pergi ke Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimentaldan periksa Use new Project Structure dialog(Terima kasih @ jessehensold)
  • Kemudian buka dengan masuk ke File > Project Structure > Messages

masukkan deskripsi gambar di sini

Untuk versi Android Studio yang lebih lama, lihat tanggapan lain di bawah ini.

Kuantium
sumber
1
Tentang hasil edit; itu tentang android-studio, karena saya sedang mencari plugin Android Studio. Terima kasih atas jawabannya tetapi saya sudah melihatnya.
osrl
11
Ini tidak ada lagi di Android Studio (menggunakan beta 2).
Gonzalo
8
Saya harus masuk ke Preferences> Build, Execution, Deployment> Gradle> Experimental dan periksa dialog 'Use new Project Structure'
jessehensold
1
Harus pergi ke tab "Ketergantungan" untuk mengaktifkan tombol "berlaku". Beberapa bug?
Mateusz Kaflowski
2
Saya mencoba ini dengan Android Studio 2.3 tetapi Dependenciestab Project Structuredialog tidak menemukan dependensi proyek saya.
jakub.g
58

Selain dari fitur bawaan Android Studio, ada plugin gradle yang bagus yang disebut Plugin Versi Gradle yang melakukan persis apa yang Anda inginkan, dengan manfaat menjadi ekstensi gradle polos sehingga TIDAK terikat pada IDE tertentu, oleh karena itu berguna untuk proyek apa pun yang menggunakan Gradle.

Plugin Gradle Version dapat membuat laporan dalam bentuk teks biasa yang dapat dibaca manusia, tetapi juga membuangnya sebagai JSON atau XML untuk pemrosesan otomatis.

Setelah ditambahkan ke file gradle Anda, penggunaan standar akan lebih mirip:

> ./gradlew dependencyUpdates

Ini akan menghasilkan laporan ketergantungan proyek yang terlihat seperti ini:

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.github.maksim88:PasswordEditText:v0.9
 - com.android.databinding:adapters:1.3.1
 - com.joanzapata.iconify:android-iconify-entypo:2.2.2
 - com.joanzapata.iconify:android-iconify-fontawesome:2.2.2
 - com.webnetmobile.tools:webnet-log:1.0.3
 - com.nulab-inc:zxcvbn:1.2.2

The following dependencies exceed the version found at the milestone revision level:
 - com.hannesdorfmann.fragmentargs:annotation [4.0.0-SNAPSHOT <- 3.0.2]
 - com.hannesdorfmann.fragmentargs:bundler-parceler [4.0.0-SNAPSHOT <- 3.0.2]
 - com.github.bumptech.glide:glide [3.7.0 <- 3.6.1]
 - com.hannesdorfmann.fragmentargs:processor [4.0.0-SNAPSHOT <- 3.0.2]

The following dependencies have later milestone versions:
 - com.github.PhilJay:MPAndroidChart [v2.2.5 -> v3.0.1]
 - com.android.support:appcompat-v7 [25.1.0 -> 25.1.1]
 - com.jakewharton:butterknife [8.4.0 -> 8.5.1]

Generated report file build/dependencyUpdates\report.txt

Lihat dokumen untuk contoh penggunaan yang luas.


CATATAN: pada saat menulis jawaban ini (2017-01), versi yang lebih tinggi dari 0.17.0 menghasilkan lebih banyak output dalam format teks paket, termasuk. URL proyek sehingga membuat seluruh output membengkak. Jika Anda, seperti yang saya temukan tidak berguna, tetap menggunakan versi 0.17.0 atau menggunakan versi yang masalah ini diatasi di anybway (jika versi tersebut ada;)

Marcin Orlowski
sumber
3
Luar biasa! Sampai di sini mencari ini untuk proyek Java normal. Solusi umum yang bagus tanpa kekhususan Android Lint.
TWiStErRob
Saya menerima kesalahan Configuration 'compile' in project ':myapp' is deprecated. Use 'implementation' instead. The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.saat menjalankan ini.
Buah
isi laporan bug di sini: github.com/ben-manes/gradle-versions-plugin/issues
Marcin Orlowski
2
Metode "Versi Perpustakaan Baru Yang Tersedia" tidak berfungsi, tetapi ini sempurna! (Saya menggunakan beberapa file gradle dengan variabel untuk versi lib)
norbDEV
Bisakah Anda menambahkan gambar plugin itu? Saya belum menemukannya dalam daftar.
CoolMind
14

TERGANGGU - MELIHAT JAWABAN YANG DITERIMA UNTUK CARA MODERN

Alat yang saya sajikan di bawah ini tidak berfungsi pada versi baru Android Studio / Gradle dan pembuatnya tidak lagi mempertahankannya ( per 30/10/2016 ). Oleh karena itu, solusi yang disajikan dalam jawaban yang diterima harus digunakan kecuali bekerja dengan Android Studio versi lama.


Pada Januari 2016, ada plugin untuk Android Studio yang melakukan hal serupa, yang disebut Dependencies Version Checker , dan yang sumbernya dapat ditemukan di GitHub .

Itu dapat ditambahkan melalui antarmuka bawaan (Pengaturan> Plugin> Jelajahi repositori ...):

Seperti apa tampilan di dalam antarmuka asli

Setelah instalasi dan restart, tab berikut muncul di UI:

Tab UI baru yang muncul setelah restart.

Yang relevan build.gradlekemudian harus disisipkan ke sisi kiri panel VersionChecker, dan Version Checktombol ditekan. Hasilnya adalah tabel yang muncul di sisi kanan, yang mencakup versi terbaru dari perpustakaan yang digunakan dalam skrip yang ditempelkan (seperti yang ditunjukkan pada gambar di atas).

Setan
sumber
Bahkan jika ini yang saya cari pada awalnya, itu tidak bekerja seperti yang diharapkan. Saya telah membuka masalah di repo Github tentang hal itu. github.com/takuaraki/DependenciesVersionChecker/issues/5
osrl
Saya mencoba ini dan mendapatkan balon pesan kesalahan / kegagalan generik ketika saya mengklik "periksa versi"
Greg Ennis
@GregEnnis Ada masalah dengan versi plugin terbaru. Baik menggunakan yang lebih lama atau menunggu pembaruan ...
Dev-iL
11

Lihat File> Struktur Proyek, lalu klik "Saran". Saya tahu, solusi ini disarankan oleh Hemant Sharma dan Jeremías Gersicich, tetapi Android Studio telah mengubahnya dalam versi 3.4.1.

masukkan deskripsi gambar di sini

CoolMind
sumber
ada orang lain yang mendapatkan layar ini hanya kosong di android studio 3.5?
Nicola Beghin
@NicolaBeghin, saya baru saja memeriksa proyek kosong dan mendapat 4 saran. Ya, ada istilah, ketika tidak menunjukkan saran, pada bulan Juli, tetapi mereka memperbaiki bug ini. Saya kira, itu adalah masalah server Google, itu mungkin terjadi kadang-kadang.
CoolMind
Tidak mendukungGradle KTS
Vlad
2

Untuk dependensi library dukungan (com.android.support), ada opsi yang lebih baik - andle

Itu dapat meminta pusat jcenter dan pakar juga.

Sederhana tiga langkah untuk memperbarui semua proyek sekaligus.

1. instal:

    $ sudo pip install andle

2. atur SDK:

    $ andle setsdk -p <sdk_path>

3. perbarui depedency:

    $ andle update -p <project_path> [--dryrun] [--remote] [--gradle]

--dryrun: hanya mencetak hasil di konsol

--remote: periksa versi di jcenter dan mavenCentral

--gradle: periksa versi gradle

Lihat https://github.com/Jintin/andle untuk informasi lebih lanjut

Jintin
sumber
hanya untuk perpustakaan pendukung?
osrl
@osrl jika Anda menambahkan --remote atau -r itu akan menguraikan versi di jcenter.
Jintin
0

Saya berurusan dengan masalah yang sama ini dan mencoba jawabannya https://stackoverflow.com/a/35371234/6412430

Apa yang benar-benar bekerja untuk saya di Android Studio 3.4.1 adalah:

File -> Project Structure -> Dependencies

Setelah Anda mencapai titik ini semua dependensi yang disertakan pada proyek atau modul Anda akan didaftar. Yang sudah kedaluwarsa akan digarisbawahi dan ketika Anda memilih satu, perinciannya akan ditampilkan memberi Anda pilihan untuk memperbarui Variabel (jika Anda memisahkannya dari deklarasi) atau Ketergantungan.

Agak terlambat tapi ini yang berhasil untuk saya.

Jeremías Gersicich
sumber
Saya juga menemukan cara ini. Aneh bahwa seseorang ditandai minus.
CoolMind
-1

Untuk mendapatkan pembaruan atau rekomendasi untuk ketergantungan proyek Anda harus sama dengan proyek android

FILE -> Project Structure -> MODULES(app) -> Dependencies

Ketika Anda mencapai tab dependensi, klik +tombol yang ditempatkan di sudut kanan atas jendela. Ketika Anda mengklik +Pilih Library Dependencyitu akan membuka Jendela baru untuk Choose Library DependencyPencarian untuk ketergantungan Anda di kotak pencarian, semua dependensi Android yang terdaftar diperbarui.

Hemant Sharma
sumber
Terima kasih, tetapi daftar ini juga mengandung pustaka yang tidak saya gunakan dan terkadang tidak memuat apa yang saya gunakan. Juga Gson com.google.code.gson:gson:2.2.4sebenarnya sementara itucom.google.code.gson:gson:2.8.5
CoolMind
terkadang dependensi bekerja dengan versi gradle yang kompatibel, Silakan periksa apakah Anda menggunakan gradle yang diperbarui di level level Proyek Anda
Hemant Sharma