Como verificar se a dependência gradle tem nova versão

232

No Android Studio, quando uso o +número da versão (como com.android.support:recyclerview-v7:21.+), recebo o aviso "Evite usar + nos números da versão". Quando uso um número de versão específico, nem sempre posso usar a versão mais recente. Eu tenho muitas dependências no meu projeto. Como verifico se uma dependência possui uma versão mais recente? Existe um plug-in do Android Studio - ou algo assim - para me notificar quando houver uma versão mais recente de uma dependência?

Editar: o Android studio destaca as bibliotecas de suporte para Android desatualizadas e os serviços do Google Play. Mas isso não está disponível para outras bibliotecas personalizadas.

insira a descrição da imagem aqui

osrl
fonte
Para desenvolvedores que estão atualizando a biblioteca, consulte: Como atualizar a biblioteca para nova versão no Bintray?
Suragch 18/08/19
2
Pelo menos no Android 3.0, as atualizações para bibliotecas personalizadas agora mostram a mesma notificação que você possui na imagem da sua pergunta para a biblioteca de suporte.
Suragch 2/11
@ Surge isso não funciona para algumas dependências para mim no android studio 3.0.1
Rémy
Podemos usar gradleplease.appspot.com para verificação nova versão da biblioteca
Alex Kisel

Respostas:

187

Agora, isso é incorporado ao Android Studio como uma verificação de cotão. Você pode habilitá-lo aqui:

Configurações> Editor> Inspeções> "Versões mais recentes da biblioteca disponíveis"

A descrição para esta inspeção:

Versões mais recentes da biblioteca disponíveis

Este detector verifica com um repositório central se existem versões mais recentes disponíveis para as dependências usadas por este projeto. Isso é semelhante à verificação GradleDependency, que verifica as versões mais recentes disponíveis nas ferramentas e bibliotecas do Android SDK, mas funciona com qualquer dependência do MavenCentral e se conecta à biblioteca todas as vezes, o que a torna mais flexível, mas também muito mais lenta.

Devido à lentidão que isso pode causar, recomendo executá-lo manualmente periodicamente, em vez de sempre ativá-lo. Você pode fazer isso:

Analisar> "Executar inspeção por nome"

Em seguida, procure "Versões mais recentes da biblioteca disponíveis" e execute-o no seu módulo.

Edit : O acima deve funcionar apenas a partir do Android Studio 2.3. Se você estiver em uma versão antiga (você deve atualizar), o seguinte pode ajudar:

Observe que parece que você deve ter a inspeção ativada para executá-la manualmente - portanto (a partir do Android Studio 2.0 Beta 2), você precisa encontrar a inspeção nas configurações, ativá-la, executá-la pelo nome e desativá-la novamente ( recuperar o desempenho anterior).

Adam S
fonte
4
Eu não sei se estou fazendo algo errado, mas que não funcionou para mim
OSRL
1
Sim, o mesmo para mim, o reino não está no MavenCentral. Sua versão de adaptação está definida assim? Minas é, e não poderia encontrá-lo tanto def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
OSRL
1
com a versão definida, a sequência não pôde encontrar. Foi capaz de encontrar com.squareup.okhttp:okhttp:2.7.2. Também em2.0.0-beta4
osrl 12/02
2
Isso mostra as atualizações disponíveis na guia "Inspeção", mas não a destaca como um aviso no build.gradle. Ainda estou para encontrar uma solução que faça isso.
Tiago
3
Teve que voltar a esta resposta para informar que APENAS funciona para dependências do MavenCentral. Isso significa que os repositórios do Jitpack ou de outras fontes NÃO são atualizados automaticamente. O método correto para obter a versão mais recente de todas as dependências é neste resposta [ stackoverflow.com/questions/28538824/... (aqui)
Ray Li
274

ATUALIZAÇÃO (23/05/18):

A versão mais recente do Android Studio não mostra as atualizações de versão na caixa de diálogo Estrutura do projeto. Em vez disso, a resposta de Adam é a correta para o Android Studio 3+

Analisar> "Executar inspeção por nome"

Em seguida, pesquise " Newer Library Versions Available"

MANEIRA ANTERIOR:

A partir de Android Studio 2.2, uma nova Project Structurecaixa de diálogo mostra a lista de dependências que seu aplicativo está usando com as atualizações disponíveis dos repositórios locais E remotos também.

  • Ative-o indo para Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimentale verifique o Use new Project Structure dialog(Obrigado @jessehensold)
  • Em seguida, abra-o indo para File > Project Structure > Messages

insira a descrição da imagem aqui

Para uma versão mais antiga do Android Studio, consulte outras respostas abaixo.

Quanturium
fonte
1
Sobre a edição; era sobre o android-studio, porque eu estava procurando por um plugin do Android Studio. Obrigado pela resposta, mas eu já vi isso.
OSRL
11
Isso não está mais presente no Android Studio (usando a beta 2).
Gonzalo
8
Eu tinha que ir para Preferências> Build, Execução, Deployment> Gradle> Experimental e verifique o 'diálogo Estrutura Use Projeto novo'
jessehensold
1
Tem que ir para a guia "Dependências" para ativar o botão "Aplicar". Algum bug?
Mateusz Kaflowski
2
Eu tentei isso com o Android Studio 2.3, mas a Dependenciesguia da Project Structurecaixa de diálogo não encontra nenhuma dependência do meu projeto.
precisa saber é o seguinte
58

Além do recurso interno do Android Studio, há um ótimo plugin gradle chamado Gradle Versions Plugin que faz exatamente o que você deseja, com o benefício de ser uma extensão simples do gradle para NÃO se vincular a qualquer IDE específico, portanto útil para qualquer projeto usando o Gradle.

O Gradle Versions Plugin pode criar relatórios em forma de texto simples legível por humanos, mas também despejá-lo como JSON ou XML para processamento automatizado.

Uma vez adicionado ao seu arquivo gradle, o uso padrão seria mais parecido com:

> ./gradlew dependencyUpdates

Isso produziria um relatório de dependência do projeto que se parece com isso:

------------------------------------------------------------
: 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

Consulte a documentação para obter exemplos de uso extensivos.


NOTA: ao escrever esta resposta (2017-01), versões superiores a 0.17.0 produzem mais saída no formato de texto planejado, incl. URLs do projeto, tornando a saída inteira inchada. Se você, como eu acho inútil, adira à versão 0.17.0 ou use a versão com esse problema solucionado de qualquer forma (se essa versão existir;)

Marcin Orlowski
fonte
3
Impressionante! Cheguei aqui procurando isso para um projeto Java normal. Uma boa solução geral sem a especificidade do Lint para Android.
TWIStErRob 25/02
Recebi um erro 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.ao executar isso.
Fruit
preencha o relatório de erro aqui: github.com/ben-manes/gradle-versions-plugin/issues
Marcin Orlowski
2
O método "Versões mais recentes da biblioteca disponíveis" não funcionou, mas é perfeito! (Eu uso vários arquivos Gradle com variáveis para as versões lib)
norbDEV
Você pode adicionar uma imagem desse plug-in? Eu não o encontrei em uma lista.
22319 CoolMind
14

DEPRECADO - VER RESPOSTA ACEITADA PARA MANEIRA MODERNA

A ferramenta que apresento abaixo não funciona em novas versões do Android Studio / Gradle e seu autor não a mantém mais (a partir de 30/10/2016 ). Portanto, a solução apresentada na resposta aceita deve ser usada, a menos que funcione com a versão antiga do Android Studio.


Desde janeiro de 2016, existe um plugin para o Android Studio que faz algo semelhante, chamado Dependencies Version Checker , e cujas fontes podem ser encontradas no GitHub .

Ele pode ser adicionado através da interface interna (Configurações> Plugins> Procurar repositórios ...):

Como é a aparência na interface nativa

Após a instalação e a reinicialização, a seguinte guia aparece na interface do usuário:

Nova guia da interface do usuário que aparece após a reinicialização.

O relevante build.gradledeve ser colado no lado esquerdo do painel VersionChecker e o Version Checkbotão pressionado. O resultado é uma tabela que aparece no lado direito, que inclui as versões mais recentes das bibliotecas usadas no script colado (como mostrado na imagem acima).

Diabo
fonte
Mesmo se isso fosse o que eu estava procurando, não funcionaria como o esperado. Abri um problema no repositório do Github sobre isso. github.com/takuaraki/DependenciesVersionChecker/issues/5
osrl
Eu tentei isso e tenho um balão de mensagem de erro / falha genérico quando eu cliquei "versões de seleção"
Greg Ennis
@GregEnnis Há um problema com a versão mais recente do plugin. Ou usar um mais antigo ou esperar por uma atualização ...
Dev-IL
11

Consulte Arquivo> Estrutura do projeto e clique em "Sugestões". Eu sei, essa solução foi sugerida por Hemant Sharma e Jeremías Gersicich, mas o Android Studio mudou na versão 3.4.1.

insira a descrição da imagem aqui

CoolMind
fonte
mais alguém recebendo essa tela vazia no android studio 3.5?
Nicola Beghin
@NicolaBeghin, Acabei de verificar o projeto vazio e recebi 4 sugestões. Sim, houve um termo, quando ele não mostrou sugestões, em julho, mas eles corrigiram esse bug. Suponho que seja um problema no servidor do Google, às vezes pode acontecer.
CoolMind 16/09/19
Não suportaGradle KTS
Vlad
2

Para dependências da biblioteca de suporte (com.android.support), existe uma opção melhor - andle

Também pode consultar o jcenter e o maven center.

Três etapas simples para atualizar todo o projeto de uma só vez.

1. instalar:

    $ sudo pip install andle

2. defina sdk:

    $ andle setsdk -p <sdk_path>

3. atualização de impedância:

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

--dryrun: somente resultado de impressão no console

--remote: verifique a versão no jcenter e no mavenCentral

--gradle: verifique a versão gradle

Consulte https://github.com/Jintin/andle para obter mais informações

Jintin
fonte
apenas para bibliotecas de suporte?
OSRL
@osrl se você adicionar --remote ou -r, ele analisará a versão no jcenter.
Jintin
0

Eu estava lidando com esse mesmo problema e tentei a resposta https://stackoverflow.com/a/35371234/6412430

O que realmente funcionou para mim no Android Studio 3.4.1 foi:

File -> Project Structure -> Dependencies

Depois de atingir esse ponto, todas as dependências incluídas no seu projeto ou módulo serão listadas. Os que estão desatualizados serão sublinhados e, quando você selecionar um, os detalhes serão mostrados, oferecendo as opções para atualizar a Variável (se você a separar da declaração) ou a Dependência.

Meio tarde, mas foi isso que funcionou para mim.

Jeremías Gersicich
fonte
Eu também encontrei esse caminho. Estranho que alguém tenha marcado menos.
CoolMind 01/07
-1

Para ser atualizado ou recomendado para o seu projeto, a dependência deve ser a mesma do projeto android

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

Quando você acessa a guia dependências Clique no +botão localizado no canto superior direito da janela. Quando você clica em +Selecionar, Library Dependencyele abre Nova janela para Choose Library DependencyPesquisar sua dependência na caixa de pesquisa, todas as dependências do Android listadas são atualizadas.

Hemant Sharma
fonte
Obrigado, mas esta lista também contém bibliotecas que não uso e, às vezes, não contém o que eu uso. Também Gson é com.google.code.gson:gson:2.2.4enquanto na verdade é #com.google.code.gson:gson:2.8.5
CoolMind
às vezes dependências trabalho com a versão Gradle compatível, verifique se você estiver usando Gradle atualizado em seu nível Gradle Projeto
Hemant Sharma