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.
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:
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.
<<è 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 copyun'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_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.
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.
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 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/.
~/.gradle/caches/modules-2/files-2.1.