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.

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.


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

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


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'
}

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.

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


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.


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)


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.


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


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

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


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/.


0

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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.