Gradle store sul file system locale


236

In che modo Gradle memorizza i file jar scaricati sul file system locale? Maven li memorizza nella .m2directory sotto USER_HOME, ma dove li memorizza Gradle? Ho controllato la .gradlecartella lì, ma ho visto solo script compilati.

Risposte:


224

Grado memorizza nella cache gli artefatti USER_HOME/.gradle. Gli script compilati si trovano generalmente nella .gradlecartella nella cartella del progetto.

Se non riesci a trovare la cache, forse è perché non hai ancora memorizzato nella cache alcun artefatto. Puoi sempre vedere dove Gradle ha gli artefatti memorizzati nella cache con un semplice script:

apply plugin: 'java'

repositories{
  mavenCentral()
}

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

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

Ora se lo esegui gradle showMeCache, scarica i deps nella cache e stampa il percorso completo.


62
Sul mio Mac per Gradle 2.4, è (attualmente) in ~/.gradle/caches/modules-2/files-2.1.
Arjan,

4
l'operatore del turno sinistro <<è deprecato in Grado
rvazquezglez

1
L'operatore di spostamento a sinistra è obsoleto ma funziona ancora (a partire dal Grado 4.10). Continuerà a funzionare fino al Gradle 5
Sam,

272

Su Mac, Linux e Windows, ovvero su tutte e 3 le principali piattaforme, Gradle memorizza le dipendenze su:

~/.gradle/caches/modules-2/files-2.1

52
Grazie per aver effettivamente risposto alla domanda con caches/modules-2/files-2.1, a differenza di ogni altra risposta qui.
spaaarky21,

cd %userprofile%\.gradle\caches\modules-2\files-2.1- un breve comando per localizzare questa directory su Windows.
Dmitriy Popov,


13

Se si desidera che i file delle dipendenze si trovino in una cartella specifica, è possibile semplicemente utilizzare copyun'attività per esso. Per es.

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}

Il tuo compito stampa NO-SOURCE nella console e non copiare le dipendenze !!
Mojtaba,

12

La cartella del repository locale di Gradle è:

  • $ USER_HOME / .gradle / cache / modules-2 / file-2.1

Le dipendenze definite verranno caricate dai repository remoti nella cartella del repository locale di Gradle. Per ogni file caricato, Gradle creerà una nuova cartella denominata con il valore md5 del file originale (pom, jar, ..). Il percorso completo per il file delle dipendenze è composto da:

  • groupid + artefactid + versione + FILE_MD5_VALUE + FILE_NAME

Se la nostra dipendenza definita è:

  • compilare "org.springframework: spring-jdbc: 4.3.4.RELEASE"

Quindi la libreria verrà caricata in:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spr4.jar

MD5 è obsoleto ora utilizza il valore SHA1
alphaguy

Successivamente FILE_HASH_VALUE è stato più generico. Grazie per il tuo commento alphaguy.
nix

7

Sono su windows

Dovresti riuscire a trovare le dipendenze all'interno

$ USER_HOME.gradle \ cache \ artefatti-24 \ filestore


6
Sul mio Mac per Gradle 2.4, è (attualmente) in ~/.gradle/caches/modules-2/files-2.1.
Arjan,

Uso Windows 10 e viene salvato in: C: \ Users [utente] \. Gradle \ caches \ modules-2 \ files-2.1
user666

5

In effetti la posizione della cache dipende dal GRADLE_USER_HOMEvalore della variabile di ambiente. Per impostazione predefinita, è $USER_HOME/.gradlebasato su Unix-OS e %userprofile%.\gradlesu Windows.
Ma se si imposta questa variabile, la directory della cache si troverà da questo percorso.

E in ogni caso, dovresti scavare caches\modules-2\files-2.1per trovare le dipendenze.


3

È possibile utilizzare l'argomento gradle --project-cache-dir "/Users/whatever/.gradle/"per forzare la directory della cache gradle.

In questo modo puoi essere sicuro di sapere quale directory viene utilizzata (oltre a creare cache diverse per progetti diversi)


2

Molte risposte sono corrette! Voglio aggiungere che puoi facilmente trovare la tua posizione di download con

gradle --info build

come descritto in https://stackoverflow.com/a/54000767/4471199 .

I nuovi artefatti scaricati verranno mostrati in 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

In questo caso, ho usato l'immagine docker gradle:5.6.2-jdk12. Come puoi vedere, il contenitore della finestra mobile utilizza /tmpcome posizione di download.


1

Nel caso in cui si tratti di un progetto Android Gradle - puoi trovare le librerie Android sotto la tua cartella $ ANDROID_HOME / extra / android / m2repository


1

In Android Studio, procedi come segue per controllare il file jar scaricato gradle.

  1. Imposta la vista della struttura del progetto su "Progetto"
  2. Nella parte inferiore della sezione Libreria esterna disponibile, espanderla.
  3. Qui puoi vedere i file jar scaricati. inserisci qui la descrizione dell'immagine

1

Sul mio computer Windows con il plug-in "Buildship 2.0.2" installato in Eclipse, le dipendenze sono memorizzate:

$ USER_HOME.gradle \ cache \ moduli-2 \ file-2.1


1

Mi ci è voluto un po 'per rendermene conto, da qui la risposta aggiuntiva. Spero che possa far risparmiare tempo alla gente. Nota che se stai eseguendo sudo gradlele dipendenze potrebbero non essere nella tua home directory, anche se sudo echo $HOMErestituisce /Users/<my-non-root-user>/. Sul mio Mac, Gradle stava memorizzando nella cache le dipendenze /private/var/root/.gradle/caches/.


0

Nel mio caso, stavo usando un repository Ivy e le mie dipendenze Gradle erano archiviate ~/.ivy2/.


0

Mi sono appena imbattuto in questo mentre cercavo questa risposta. Se si utilizza intellij, è possibile accedere al percorso del file, ma aprendo la cartella lib esterna in Esplora progetti, facendo clic con il tasto destro del mouse sul vaso e selezionando Apri impostazioni libreria.inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.