@OliverCharlesworth use o botão Fechar para marcar a resposta como uma duplicata
030
1
@ user3286701 talvez você possa aceitar uma das respostas?
030
5
gradle dependenciesDeveria trabalhar. É louco como todo mundo tem gradlew app:dependenciesprovavelmente porque Android.
prayagupd
2
@prayagupd Essa deve ser a resposta. A questão é sobre gradle. Depois de ler as respostas altamente classificadas, abri o terminal e coloquei o CD no diretório de um projeto geral que usa gradle. Executei o 'app gradle: dependencies' e recebi o erro 'Falha na compilação', embora não planejasse criar nada. Meu projeto é bom e eu só queria ver as dependências.
ka3ak 13/01
Respostas:
604
Para Android, use esta linha
gradle app:dependencies
ou se você tiver um invólucro gradle:
./gradlew app:dependencies
Onde appestá o seu módulo de projeto.
Além disso, se você quiser verificar se algo é compilevs. testCompilevs androidTestCompiledependência, bem como o que está puxando isso:
Ah, eu tive que colocar o nome do módulo lá. É por isso que ... Obrigado!
Jenix
Apenas comecei a estudar gradle agora, um pouco confuso. Posso tratar gradlew como gradle, quero dizer, posso inserir as mesmas opções / comandos que o gradlew com gradlew?
Jenix
1
@Jenix sim, se você estiver usando um invólucro apenas usar ./gradlewno lugar degradle
Chad Bingham
2
Eu recebo o erro Project 'app' not found in root projectao executar esses comandos. A solução de Benjamins, no entanto, funcionou.
krock
5
De fato ./gradlew :dependenciesvai funcionar. Ele listará as dependências para todos os seus projetos, mas é fácil encontrar a correta.
dirkjot
240
Você pode tornar a árvore de dependência com o comando gradle dependencies. Para obter mais informações, consulte a seção 11.6.4 Listando dependências do projeto no guia do usuário on-line.
Quando faço isso com meu projeto Android, tudo o que recebo é esta saída: pastebin.com/fHFigAuY Sugestões?
Nilzor
3
@ Nilzor Você provavelmente está executando o comando no diretório errado (que não contém o build.gradlearquivo) ou o seu arquivo de construção não aplica nenhum plug-in.
Benjamin Muschko
6
você pode obter dependências para um projeto específico usando gradle: project: dependencies
como obtenho a visualização "projetos de classificação"?
user3526
1
@ user3526 clique na etiqueta "gradle" encontrada no lado direito da tela. Veja a imagem em anexo para referência
Nicolás Carrasco
2
Descobri que isso cria uma lista simples no AS 3.2.0, em vez de uma árvore. A variante da linha de comando cria uma árvore, no entanto.
Tom
5
@ Execute a tarefa 'depencies' na categoria 'help' e não 'android'. Ele mostra como a árvore
Maxim Berezovsky
27
Geralmente, o gráfico completo test, compilee de androidTestCompiledependência é demais para examinar juntos. Se você deseja apenas o compilegráfico de dependência, pode usar:
Nota: compilefoi descontinuado nas versões mais recentes do Gradle e nas versões mais recentes você deve mudar todas as suas compiledependências implementation. Por favor, veja esta resposta aqui
Geralmente, a saída desse plugin pode ser encontrada no diretório build / reports / dependency-graph e contém três arquivos (.dot | .png | .svg) se você estiver usando a versão 0.5.0 do plugin.
Exemplo de gráfico de dependências em um aplicativo real ( Chess Clock ):
Ei David, eu fiz como foi dito nas instruções do plugin. Apliquei o plug-in no projeto gradle, mas não estou vendo nenhuma pasta de relatórios no diretório build. Há algo que precisamos fazer além de criar e executar o projeto?
As coisas avançaram em Gradle, por isso acredito que essa pergunta merece outra resposta.
Desde o Gradle 4.3, " varreduras de construção " foram introduzidas. Todas as informações relevantes estão disponíveis nos documentos Gradle ( 1 , 2 ). Para mim, agora parece ser a maneira mais fácil de verificar suas dependências (e geralmente sua compilação) de uma maneira clara e organizada.
Eles são muito fáceis de criar, basta executar:
gradle build --scan
(ou ./gradlew build --scanse você usar um invólucro)
Isso produz um link gerado aleatoriamente onde você pode ver sua verificação. Ao abrir esse link, você digita seu e-mail e obtém controle total do link: por exemplo. compartilhe ou exclua. Ele tem muitas informações sobre sua compilação , não apenas dependências. Você pode ver suas dependências, suas hierarquias, o repositório usado para obtê-las, mas também muitas outras coisas sobre sua compilação, a saber, seu desempenho (que é de interesse em grandes compilações complexas), seus testes, até a saída do console e sua configuração do sistema, que JDK e JVM foram usadas, tamanho máximo de heap etc.
Esta é uma tela de impressão de um projeto simulado:
Uma verificação de compilação é um registro compartilhável de uma compilação que fornece informações sobre o que aconteceu e por quê. Você pode criar uma varredura de compilação em scans.gradle.com gratuitamente.
Observe, no entanto, que as informações do seu processo de compilação serão enviadas aos servidores Gradle. Você tem controle total para excluí-lo quando terminar sua inspeção.
Finalmente, você também pode usar as varreduras de compilação nas versões Gradle anteriores à 4.3, basta adicionar manualmente o plug-in de varreduras no buildscript.
Editar :
Incorporando alguns comentários dos comentários, algumas notas extras:
1) É muito difícil fazer isso por engano ou sem entender que algumas informações de sua compilação estarão on-line (privadas para você, com a capacidade de excluí-las, mas ainda on-line). )
Ao executar gradle build --scana seguinte mensagem aparece:
Publishing a build scan to scans.gradle.com requires accepting the Gradle
Terms of Service defined at https://gradle.com/terms-of-service. Do you
accept these terms? [yes, no]
Você precisa escrever explicitamente yese a mensagem continua:
2) No Gradle Enterprise, você pode hospedar varreduras do gradle build em seus próprios servidores. No entanto, não tenho experiência nisso e minha abordagem proposta foi sobre a distribuição padrão da Gradle, usando os servidores da Gradle para suas varreduras de compilação.
3) O próprio Gradle promove as varreduras de compilação como a maneira de lidar com a maioria dos seus problemas de compilação.
Lamento diminuir a votação, mas a IMO não está respondendo à pergunta e não está avisando com clareza suficiente para que gradle build --scanvocê publique detalhes de sua compilação em algum lugar da Internet - e para excluí-la, você deve associá-la ao endereço de email de trabalho.
Michal
1
Hey Michal, você pode votar se você se sentir assim. No entanto, eu tenho que perguntar, você tentou? Ao executar gradle build --scanno cmd, você será solicitado: Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]. Você precisa escrever manualmente yes. Logo depois, você recebe a mensagem: Publishing build scan... https://gradle.com/s/a12en0dasdu(coloque o link do mesmo tipo aleatoriamente). Então, acredito que isso o avise adequadamente antes. (1/2)
tryman
1
Você pode acessar o link e excluir a verificação imediatamente, sem um email ou qualquer coisa. Como resposta, acredito que responde à pergunta . Na verdade, ele mostra informações extras sobre suas dependências (e além do limite: informações adicionais para toda a compilação) em comparação com outras abordagens. Se você não acha que está totalmente bem, mas é (até onde eu sei) a ferramenta mais abrangente no momento para o trabalho, é importante ter isso em mente. Por fim, é promovido pelo próprio Gradle, é literalmente o primeiro guia deles (2/2) #
2137
@ Michael Desculpe, esqueci de marcar você antes, então você pode não ter visto meus comentários. (Também editei o post para incorporar os comentários com os quais respondi.) #
Tryman
2
Eu não tentei isso - obrigado por esclarecer sobre a aceitação dos termos. Eu removi meu -1.
Michal
9
No Android Studio
1) Abra o terminal e verifique se você está na pasta raiz do projeto.
2) Execute ./gradlew app:dependencies (se não estiver usando o wrapper gradle, tente gradle app:dependencies)
Observe que a execução ./gradle dependenciesfornecerá apenas uma árvore de dependência da pasta raiz do projeto, portanto, mencionar o aplicativo da maneira acima, ou seja, ./gradlew app:dependenciesé importante.
para mim, funcionou sem o "./", assim: gradlew app: dependencies.
Gilad Levinson
7
Eu também achei útil para executar isso:
./gradlew dI --dependency <your library>
Isso mostra como as dependências estão sendo resolvidas ( dependencyInsight) e ajuda você a depurar para onde você precisa forçar ou excluir as bibliotecas em seubuild.gradle
Observe que você pode precisar fazer algo como ./gradlew <module_directory>:<module_name>:dependenciesse o módulo tiver um diretório extra antes de atingir seu build.gradle. Em caso de dúvida, ./gradlew tasks --allverifique o nome.
Isso fornecerá todas as dependências do seu projeto e subprojetos, além de todas as dependências de terceiros.
Se você deseja fazer isso de maneira programática, precisará de um representante personalizado das dependências - você pode começar estendendo o AsciiDependencyReportRendererque imprime um gráfico ascii das dependências por padrão.
gradle dependencies
Deveria trabalhar. É louco como todo mundo temgradlew app:dependencies
provavelmente porque Android.Respostas:
Para Android, use esta linha
ou se você tiver um invólucro gradle:
Onde
app
está o seu módulo de projeto.Além disso, se você quiser verificar se algo é
compile
vs.testCompile
vsandroidTestCompile
dependência, bem como o que está puxando isso:fonte
./gradlew
no lugar degradle
Project 'app' not found in root project
ao executar esses comandos. A solução de Benjamins, no entanto, funcionou../gradlew :dependencies
vai funcionar. Ele listará as dependências para todos os seus projetos, mas é fácil encontrar a correta.Você pode tornar a árvore de dependência com o comando
gradle dependencies
. Para obter mais informações, consulte a seção 11.6.4 Listando dependências do projeto no guia do usuário on-line.fonte
build.gradle
arquivo) ou o seu arquivo de construção não aplica nenhum plug-in../gradlew dependencies
Se você achar difícil navegar pela saída do console
gradle dependencies
, poderá adicionar o plug - in de relatórios do projeto :E gere um relatório HTML usando:
O relatório normalmente pode ser encontrado em
build/reports/project/dependencies/index.html
Se parece com isso:
fonte
gradle htmlDependencyReport
No Android Studio (pelo menos desde a v2.3.3), você pode executar o comando diretamente da interface do usuário:
Clique na guia Gradle e clique duas vezes em : yourmodule -> Tasks -> android -> androidDependencies
A árvore será exibida na guia Gradle Console
fonte
Geralmente, o gráfico completo
test
,compile
e deandroidTestCompile
dependência é demais para examinar juntos. Se você deseja apenas ocompile
gráfico de dependência, pode usar:Fonte: Seção 4.7.6 da Gradle docs
Nota:
compile
foi descontinuado nas versões mais recentes do Gradle e nas versões mais recentes você deve mudar todas as suascompile
dependênciasimplementation
. Por favor, veja esta resposta aquifonte
Se você deseja visualizar suas dependências em um gráfico, pode usar o plug-in gradle-dependency-graph-generator .
Geralmente, a saída desse plugin pode ser encontrada no diretório build / reports / dependency-graph e contém três arquivos (.dot | .png | .svg) se você estiver usando a versão 0.5.0 do plugin.
Exemplo de gráfico de dependências em um aplicativo real ( Chess Clock ):
fonte
Para Android, digite isso no terminal
Ele listará todas as dependências e aquelas com versões mais recentes para você atualizar como
fonte
As coisas avançaram em Gradle, por isso acredito que essa pergunta merece outra resposta.
Desde o Gradle 4.3, " varreduras de construção " foram introduzidas. Todas as informações relevantes estão disponíveis nos documentos Gradle ( 1 , 2 ). Para mim, agora parece ser a maneira mais fácil de verificar suas dependências (e geralmente sua compilação) de uma maneira clara e organizada.
Eles são muito fáceis de criar, basta executar:
(ou
./gradlew build --scan
se você usar um invólucro)Isso produz um link gerado aleatoriamente onde você pode ver sua verificação. Ao abrir esse link, você digita seu e-mail e obtém controle total do link: por exemplo. compartilhe ou exclua. Ele tem muitas informações sobre sua compilação , não apenas dependências. Você pode ver suas dependências, suas hierarquias, o repositório usado para obtê-las, mas também muitas outras coisas sobre sua compilação, a saber, seu desempenho (que é de interesse em grandes compilações complexas), seus testes, até a saída do console e sua configuração do sistema, que JDK e JVM foram usadas, tamanho máximo de heap etc.
Esta é uma tela de impressão de um projeto simulado:
Observe, no entanto, que as informações do seu processo de compilação serão enviadas aos servidores Gradle. Você tem controle total para excluí-lo quando terminar sua inspeção.
Finalmente, você também pode usar as varreduras de compilação nas versões Gradle anteriores à 4.3, basta adicionar manualmente o plug-in de varreduras no buildscript.
Editar :
Incorporando alguns comentários dos comentários, algumas notas extras:
1) É muito difícil fazer isso por engano ou sem entender que algumas informações de sua compilação estarão on-line (privadas para você, com a capacidade de excluí-las, mas ainda on-line). )
Ao executar
gradle build --scan
a seguinte mensagem aparece:Você precisa escrever explicitamente
yes
e a mensagem continua:2) No Gradle Enterprise, você pode hospedar varreduras do gradle build em seus próprios servidores. No entanto, não tenho experiência nisso e minha abordagem proposta foi sobre a distribuição padrão da Gradle, usando os servidores da Gradle para suas varreduras de compilação.
3) O próprio Gradle promove as varreduras de compilação como a maneira de lidar com a maioria dos seus problemas de compilação.
fonte
gradle build --scan
você publique detalhes de sua compilação em algum lugar da Internet - e para excluí-la, você deve associá-la ao endereço de email de trabalho.gradle build --scan
no cmd, você será solicitado:Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service. Do you accept these terms? [yes, no]
. Você precisa escrever manualmenteyes
. Logo depois, você recebe a mensagem:Publishing build scan... https://gradle.com/s/a12en0dasdu
(coloque o link do mesmo tipo aleatoriamente). Então, acredito que isso o avise adequadamente antes. (1/2)No Android Studio
1) Abra o terminal e verifique se você está na pasta raiz do projeto.
2) Execute
./gradlew app:dependencies
(se não estiver usando o wrapper gradle, tentegradle app:dependencies
)Observe que a execução
./gradle dependencies
fornecerá apenas uma árvore de dependência da pasta raiz do projeto, portanto, mencionar o aplicativo da maneira acima, ou seja,./gradlew app:dependencies
é importante.fonte
Eu também achei útil para executar isso:
Isso mostra como as dependências estão sendo resolvidas (
dependencyInsight
) e ajuda você a depurar para onde você precisa forçar ou excluir as bibliotecas em seubuild.gradle
Consulte: https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html
fonte
Observe que você pode precisar fazer algo como
./gradlew <module_directory>:<module_name>:dependencies
se o módulo tiver um diretório extra antes de atingir seu build.gradle. Em caso de dúvida,./gradlew tasks --all
verifique o nome.fonte
Para mim, era simplesmente um comando
no build.gradle add
plugin
e então vá para o cmd e execute o seguinte comando
Isso me dá um relatório HTML WOW Html report 💕
Isso é todo meu senhor.
fonte
Para versões recentes do Gradle (testei com a versão 6.4.1):
ou se você estiver usando o Gradle Wrapper:
fonte
Se você deseja todas as dependências em um único arquivo no final, em duas etapas. Adicione isso ao seu
build.gradle.kts
na raiz do seu projeto:Aplique então:
Isso fornecerá todas as dependências do seu projeto e subprojetos, além de todas as dependências de terceiros.
Se você deseja fazer isso de maneira programática, precisará de um representante personalizado das dependências - você pode começar estendendo o
AsciiDependencyReportRenderer
que imprime um gráfico ascii das dependências por padrão.fonte