Armazenamento Gradle no sistema de arquivos local

236

Como o Gradle armazena arquivos jar baixados no sistema de arquivos local? O Maven as armazena no .m2diretório abaixo USER_HOME, mas onde a Gradle as armazena? Eu verifiquei a .gradlepasta lá, mas vi apenas scripts compilados.

manojpardeshi111
fonte

Respostas:

224

Gradle armazena em cache artefatos na USER_HOME/.gradlepasta. Os scripts compilados geralmente estão na .gradlepasta na sua pasta do projeto.

Se você não conseguir encontrar o cache, talvez seja porque você ainda não armazenou nenhum artefato em cache. Você sempre pode ver onde o Gradle armazenou artefatos em cache com um script simples:

apply plugin: 'java'

repositories{
  mavenCentral()
}

dependencies{
  compile 'com.google.guava:guava:12.0'
}

task showMeCache << {
  configurations.compile.each { println it }
}

Agora, se você o executar gradle showMeCache, faça o download dos deps no cache e imprima o caminho completo.

rodion
fonte
62
No meu Mac para Gradle 2.4, ele está atualmente ~/.gradle/caches/modules-2/files-2.1.
precisa
4
o operador de turno esquerdo <<está sendo preterido no Gradle 3.2 mrhaki.blogspot.com/2016/11/…
rvazquezglez
1
O operador de deslocamento à esquerda está obsoleto, mas ainda funciona (a partir do Gradle 4.10). Vai continuar a funcionar até o Gradle 5
Sam
272

No Mac, Linux e Windows, ou seja, nas três principais plataformas, a Gradle armazena dependências em:

~/.gradle/caches/modules-2/files-2.1
Himanshu Khandelwal
fonte
52
Obrigado por realmente responder à pergunta caches/modules-2/files-2.1, diferente de todas as outras respostas aqui.
spaaarky21
cd %userprofile%\.gradle\caches\modules-2\files-2.1- um comando curto para localizar neste diretório no Windows.
Dmitriy Popov
19

No Windows 10 PC, ele é salvo em:

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Hasan A Yousef
fonte
Posso forçar a alteração desse caminho para outro local?
Mohammad Faisal
o mesmo no MacOS, na verdade #
shabunc 02/10/19
@MohammadFaisal sim, consulte stackoverflow.com/a/28927173/192373
Alex Cohn
13

Se você deseja que seus arquivos de dependência estejam em uma pasta específica, você pode simplesmente usar uma copytarefa para isso. Por exemplo.

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}
Aniket Thakur
fonte
Sua tarefa imprime NO-SOURCE no console e não copia dependências !!
Mojtaba
12

A pasta do repositório local de Gradle é:

  • $ USER_HOME / .gradle / caches / modules-2 / arquivos-2.1

Dependências definidas serão carregadas de repositórios remotos na pasta de repositório local da gradle. Para cada arquivo carregado, gradle criará uma nova pasta nomeada com o valor md5 do arquivo original (pom, jar, ..). O caminho completo para o arquivo de dependência é composto de:

  • groupid + artifactid + version + FILE_MD5_VALUE + FILE_NAME

Se nossa dependência definida for:

  • compile 'org.springframework: spring-jdbc: 4.3.4.RELEASE'

Em seguida, a biblioteca será carregada em:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spring-jdbc-4.3.4.
nix
fonte
MD5 é obsoleto agora ele usa o valor SHA1
alphaguy
Depois, FILE_HASH_VALUE foi mais genérico. Obrigado pelo seu comentário alphaguy.
Nix
7

Estou nas janelas

Você deve encontrar as dependências dentro

$ USER_HOME.gradle \ caches \ artifacts-24 \ filestore

mekbib.awoke
fonte
6
No meu Mac para Gradle 2.4, ele está atualmente ~/.gradle/caches/modules-2/files-2.1.
precisa
Eu uso o Windows 10 e ele é salvo em: C: \ Users [usuário] \ Gradle \ caches \ modules-2 \ arquivos-2.1.
user666
5

De fato, o local do cache depende do GRADLE_USER_HOMEvalor da variável de ambiente. Por padrão, ele é $USER_HOME/.gradlebaseado no Unix-OS e %userprofile%.\gradleno Windows.
Mas se você definir essa variável, o diretório de cache estará localizado nesse caminho.

E, seja qual for o caso, você deve caches\modules-2\files-2.1procurar as dependências.

davidxxx
fonte
3

Você pode usar o argumento gradle --project-cache-dir "/Users/whatever/.gradle/"para forçar o diretório de cache de gradle.

Dessa maneira, você pode ter certeza de que sabe qual diretório está sendo usado (além de criar caches diferentes para projetos diferentes)

Graeme
fonte
2

Muitas respostas estão corretas! Quero acrescentar que você pode encontrar facilmente o seu local de download com

gradle --info build

como descrito em https://stackoverflow.com/a/54000767/4471199 .

Os novos artefatos baixados serão mostrados no stdout:

Downloading https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.1.7.RELEASE/spring-boot-parent-2.1.7.RELEASE.pom to /tmp/gradle_download551283009937119777bin

Nesse caso, usei a imagem do docker gradle:5.6.2-jdk12. Como você pode ver, o contêiner do docker usa /tmpcomo local de download.

RoBeaToZ
fonte
1

Caso seja um projeto de graduação do Android - você pode encontrar as bibliotecas do Android abaixo da pasta $ ANDROID_HOME / extras / android / m2repository

joensson
fonte
1

No android studio, execute as seguintes etapas para verificar o arquivo jar baixado pelo gradle.

  1. Defina a visualização da estrutura do projeto como "Projeto"
  2. Na parte inferior da seção Biblioteca externa disponível, expanda-a.
  3. Aqui você pode ver os arquivos jar baixados. insira a descrição da imagem aqui
chetan mekha
fonte
1

Na minha máquina Windows com o plug-in "Buildship 2.0.2" instalado no eclipse, as dependências são armazenadas:

$ USER_HOME.gradle \ caches \ modules-2 \ files-2.1

nanosoft
fonte
1

Levei um tempo para perceber isso, daí a resposta adicional. Espero que ele possa economizar tempo para as pessoas. Observe que, se você estiver executando, sudo gradleas dependências podem não estar no diretório inicial, mesmo que sudo echo $HOMEretornem /Users/<my-non-root-user>/. No meu Mac, Gradle estava armazenando as dependências em cache /private/var/root/.gradle/caches/.

entpnerd
fonte
0

No meu caso, eu estava usando um repositório Ivy e minhas dependências Gradle foram armazenadas ~/.ivy2/.

entpnerd
fonte
0

Eu apenas tropecei nisso enquanto procurava por esta resposta. Se você estiver usando intellij, poderá navegar para o local do arquivo, mas abrindo a pasta lib externa no explorador de projeto, clicando com o botão direito do mouse no jar e selecione Abrir Configurações da Biblioteca.insira a descrição da imagem aqui

Alper Akture
fonte