In che modo Gradle memorizza i file jar scaricati sul file system locale? Maven li memorizza nella .m2
directory sotto USER_HOME
, ma dove li memorizza Gradle? Ho controllato la .gradle
cartella lì, ma ho visto solo script compilati.
In che modo Gradle memorizza i file jar scaricati sul file system locale? Maven li memorizza nella .m2
directory sotto USER_HOME
, ma dove li memorizza Gradle? Ho controllato la .gradle
cartella lì, ma ho visto solo script compilati.
Risposte:
Grado memorizza nella cache gli artefatti USER_HOME/.gradle
. Gli script compilati si trovano generalmente nella .gradle
cartella 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.
<<
è deprecato in Grado
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
caches/modules-2/files-2.1
, a differenza di ogni altra risposta qui.
cd %userprofile%\.gradle\caches\modules-2\files-2.1
- un breve comando per localizzare questa directory su Windows.
Nel PC Windows 10, viene salvato in:
C:\Users\<user>\.gradle\caches\modules-2\files-2.1\
Se si desidera che i file delle dipendenze si trovino in una cartella specifica, è possibile semplicemente utilizzare copy
un'attività per esso. Per es.
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
La cartella del repository locale di Gradle è:
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:
Se la nostra dipendenza definita è:
Quindi la libreria verrà caricata in:
Sono su windows
Dovresti riuscire a trovare le dipendenze all'interno
$ USER_HOME.gradle \ cache \ artefatti-24 \ filestore
~/.gradle/caches/modules-2/files-2.1
.
In effetti la posizione della cache dipende dal GRADLE_USER_HOME
valore della variabile di ambiente. Per impostazione predefinita, è $USER_HOME/.gradle
basato su Unix-OS e %userprofile%.\gradle
su 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.1
per trovare le dipendenze.
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 /tmp
come posizione di download.
In Android Studio, procedi come segue per controllare il file jar scaricato gradle.
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 gradle
le dipendenze potrebbero non essere nella tua home directory, anche se sudo echo $HOME
restituisce /Users/<my-non-root-user>/
. Sul mio Mac, Gradle stava memorizzando nella cache le dipendenze /private/var/root/.gradle/caches/
.
~/.gradle/caches/modules-2/files-2.1
.