Como posso dizer à gradle para baixar novamente dependências de repositórios?
742
Geralmente, você pode atualizar dependências no cache com a opção de linha de comando --refresh-dependencies . Você também pode excluir os arquivos em cache em ~/.gradle/caches
. Com a próxima compilação, o Gradle tentaria baixá-los novamente.
Qual é o seu caso de uso específico? Você usa versões de dependência dinâmica ou versões do INSTANTÂNEO?
Nos sistemas Unix, é possível excluir todos os artefatos existentes (artefatos e metadados) que o Gradle baixou usando:
rm -rf $HOME/.gradle/caches/
find $HOME/.gradle/caches/ -name "*LIBRARY_NAME*" -exec rm -r {} \;
Se você estiver usando uma versão recente do Gradle, poderá usar a opção --refresh-dependencies.
você pode consultar o manual Gradle .
fonte
Você pode solicitar que Gradle faça o download novamente de algumas dependências no script de construção sinalizando a dependência como 'alterando'. Gradle procurará atualizações a cada 24 horas, mas isso pode ser configurado usando o DSL resolutionStrategy. Acho útil usá-lo para compilações SNAPSHOT ou NIGHTLY.
Expandido:
Condensado:
Encontrei esta solução neste tópico do fórum .
fonte
cacheChangingModulesFor
é a chave,changing: true
é opcional porque está implícita-SNAPSHOT
, é possível usar a abreviação aqui:compile 'group:projectA:1.1-SNAPSHOT'
por causa da implicação acima. Um pode também restringir a resolutionStrategy a uma config:configurations.compile.resolutionS...
.compile 'com.burrowsapps:ads:1.0:true'
?Para MAC
./gradlew build --refresh-dependencies
Para Windows
gradlew build --refresh-dependencies
Também pode tentar
gradlew assembleDevelopmentDebug --refresh-dependencies
fonte
gradle wrapper
tarefa usando ; você pode até gerar um invólucro usando outro invólucro Gradle:gradlew wrapper
Para Windows ... para fazer o gradle baixar novamente dependências específicas :
exclua as dependências que deseja baixar novamente do diretório abaixo:
exclua todos os diretórios de metadados no caminho:
execute
gradle build
(ougradlew build
se estiver usando o gradle wrapper) no diretório raiz do projeto.nota: os números nos caminhos dos arquivos acima podem ser diferentes para você.
fonte
Pode-se remover a pasta com os frascos em cache.
No meu caso, no Mac, a biblioteca foi armazenada em cache no caminho:
/Users/MY_NAME/.gradle/caches/modules-2/files-2.1/cached-library-to-remove
Eu removi a pasta da biblioteca em cache ("biblioteca em cache para remover" no exemplo acima), excluí a pasta de compilação do meu projeto e compilei novamente. Nova biblioteca foi baixada então.
fonte
Em vez de remover todo o cache de gradle, como sugerem algumas respostas aqui, você pode excluir o cache de um grupo ou ID de artefato específico. Eu adicionei a seguinte função ao meu
.bash_profile
:Uso:
Em seguida, na próxima compilação ou se você ressincronizar, o gradle baixará novamente as dependências.
fonte
Existem 2 maneiras de fazer isso:
Usando a opção --refresh-dependencies :
Explicação resumida - a opção de atualização de dependências diz ao Gradle para ignorar todas as entradas em cache dos módulos e artefatos resolvidos.
Explicação longa
Usando delete: ao excluir caches
Você acabou de limpar todos os jarros em cache e as somas sha1 e o Gradle está em uma situação em que não há artefatos em sua máquina e precisa fazer o download de tudo. Sim, ele funcionará 100% pela primeira vez, mas quando outro SNAPSHOT for lançado e fizer parte da sua árvore de dependência, você será novamente confrontado com a opção de atualizar ou limpar os caches.
fonte
Isso funcionou para mim. Verifique se o Gradle não está definido como offline desmarcando o botão em Arquivo> Configurações> Gradle> Trabalho offline.
Adicione isso ao nível superior do seu build.gradle, é bom ter dependências acima
Assegurei que minhas dependências fossem escritas assim:
Depois disso, abro o painel Gradle no Android Studio e clico no botão de setas do círculo azul. Sempre consigo ver minhas atualizações recebendo uma nova cópia nova.
fonte
Nenhuma das soluções acima funcionou para mim.
Se você usa o IntelliJ, o que o resolveu foi simplesmente atualizar todos os projetos Gradle:
fonte
Para aqueles que estão se perguntando onde executar os comandos gradle:
gradlew build --refresh-dependencies
fonte
Para Android Studio 3.4.1
Simplesmente abra a guia gradle (pode estar localizada à direita) e clique com o botão direito do mouse no pai na lista (deve ser chamado de "Android") e selecione "Atualizar dependências".
Isso deve resolver seu problema.
fonte
Mb Estou atrasado, no entanto, minha solução é para repositório único. Eu acho que excluir ~ / .gradle / * é um exagero. O problema com o qual me deparei foi que eu estava excluindo o diretório onde estavam as fontes e o gradle estava recebendo outra versão, não do nexus. Para evitar que eu corra o próximo:
Depois disso, o gradle está arrastando arquivos do nexus.
fonte
Para atualizar a versão em cache 'release', a única opção é limpar o cache local.
Para atualizar a versão em cache do 'instantâneo', você pode:
fonte
A exclusão de todos os caches faz o download de todas as dependências novamente. por isso demora tanto tempo e é chato esperar novamente para baixar novamente todas as dependências.
Como sempre eu poderia ser capaz de resolver isso abaixo caminho.
Apenas exclua os grupos que precisam ser atualizados.
Ex: se queremos atualizar o grupo com.user.test
remova a dependência do build.gradle e adicione-a novamente. então ele atualizará as dependências do que queremos.
fonte
Acho gradle 2.14.1 corrige o problema. A resposta aceita está correta, mas há um erro no gradle com –refresh-dependencies. 2.14.1 corrige isso.
Consulte https://discuss.gradle.org/t/refresh-dependencies-should-use-cachechangingmodulesfor-0s/556
fonte
exclua este diretório:
fonte
Para a maioria dos casos, simplesmente reconstruir o projeto deve funcionar. Às vezes, você precisa executar
./gradlew build --refresh-dependencies
como várias respostas já mencionadas (leva muito tempo, dependendo de quantas dependências você possui). No entanto, às vezes, nada disso funcionará: a dependência não será atualizada. Então, você pode fazer isso:NonExistingClass
razão)Isso é ridículo e parece loucura, mas na verdade eu uso esse procedimento diariamente, simplesmente porque a dependência de que preciso pode ser atualizada dezenas de vezes e nenhuma solução adequada teria efeito.
fonte
Você pode fazer assim
Para citar Desabilitando o Gradle Build Cache
fonte
Se você estiver usando o eclipse e se desejar forçar o eclipse a recarregar dependências, tente o comando abaixo
fonte
Somente uma exclusão manual da dependência específica na pasta cache funciona ... um artefato criado por um colega no repositório corporativo.
fonte
No meu caso, nenhuma das opções acima funcionou, o que fiz foi:
build.gradle
, comentando as dependências relacionadas às importações não resolvidas que eu tinhaEntão minhas importações foram resolvidas corretamente novamente.
fonte
Você precisa fazer o download novamente para poder baixar e substituir manualmente o arquivo corrompido e sincronizar novamente o seu projeto. Vá para este local C: \ users [nome de usuário] .gradle \ wrapper \ dist \ gradle3.3-all \ 55gk2rcmfc6p2dg9u9ohc3hw9 \ gradle-3.3-all.zip Exclua o gradle3.3allzip e substitua-o baixando novamente neste site https: / /services.gradle.org/distributions/ Encontre o mesmo arquivo, faça o download e cole-o nesse local. Em seguida, sincronize seu projeto. Espero que funcione para você também.
fonte