Зберігати Gradle в локальній файловій системі


235

Як Gradle зберігає завантажені файли jar у локальній файловій системі? Maven зберігає їх у вказаному нижче .m2каталозі USER_HOME, але де їх зберігає Gradle? Я перевірив .gradleтам папку, але побачив лише складені сценарії.

Відповіді:


224

Gradle зберігає артефакти в USER_HOME/.gradleпапці. Скомпільовані сценарії зазвичай знаходяться в .gradleпапці вашого проекту.

Якщо ви не можете знайти кеш, можливо, це ще тому, що ви ще не зберегли жодних артефактів. Ви завжди можете бачити, де Gradle зберігає артефакти з простим сценарієм:

apply plugin: 'java'

repositories{
  mavenCentral()
}

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

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

Тепер, якщо ви запускаєте gradle showMeCacheйого, слід завантажити deps в кеш і надрукувати повний шлях.


62
На моєму Mac для Gradle 2.4 він (на даний момент) є в ~/.gradle/caches/modules-2/files-2.1.
Ар'ян

4
оператор лівої зміни знищується<< на Gradle 3.2 mrhaki.blogspot.com/2016/11/…
rvazquezglez

1
Оператор лівої зміни застарілий, але все ще працює (станом на Gradle 4.10). Він буде продовжувати працювати до Gradle 5
Sam

272

На Mac, Linux та Windows, тобто на всіх трьох основних платформах, Gradle зберігає залежності за адресою:

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

52
Дякую, що насправді відповіли на питання caches/modules-2/files-2.1, на відміну від будь-якої іншої відповіді тут.
spaaarky21

cd %userprofile%\.gradle\caches\modules-2\files-2.1- коротка команда, щоб знайти цей каталог у Windows.
Дмитро Попов


13

Якщо ви хочете, щоб ваші файли залежності знаходилися в якійсь конкретній папці, ви можете просто використати copyдля цього завдання. Напр.

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

Ваше завдання друкує NO-SOURCE в консолі, а не копіюйте залежності !!
Mojtaba

12

Місцева папка сховища Gradle:

  • $ USER_HOME / .gradle / кеші / модулі-2 / файли-2.1

Визначені залежності завантажуватимуться з віддалених сховищ у папку локального сховища gradle. Для кожного завантаженого файлу gradle створить нову папку з ім'ям зі значенням md5 вихідного файлу (pom, jar, ..). Повний шлях до файлу залежності складається з:

  • groupid + artifactid + версія + FILE_MD5_VALUE + FILE_NAME

Якщо наша визначена залежність:

  • компілювати 'org.springframework: spring-jdbc: 4.3.4.RELEASE'

Тоді бібліотека буде завантажена у:

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

MD5 застаріло, тепер він використовує значення SHA1
alphaguy

Згодом FILE_HASH_VALUE став більш загальним. Дякую за алфавіт коментарів.
nix

7

Я на вікнах,

Ви повинні мати можливість знайти залежності всередині

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


6
На моєму Mac для Gradle 2.4 він (на даний момент) є в ~/.gradle/caches/modules-2/files-2.1.
Ар'ян

Я використовую Windows 10, і він зберігається під: C: \ Users [користувач] \. Gradle \ caches \ module-2 \ files-2.1
user666

5

Насправді розташування кеша залежить від GRADLE_USER_HOMEзначення змінної середовища. За замовчуванням він знаходиться $USER_HOME/.gradleна базі Unix-OS та %userprofile%.\gradleв Windows.
Але якщо встановити цю змінну, каталог кешу буде розташований з цього шляху.

І як би там не було, вам слід розібратися, caches\modules-2\files-2.1щоб знайти залежності.


3

Ви можете використовувати аргумент gradle, --project-cache-dir "/Users/whatever/.gradle/"щоб примусити каталог кешу gradle.

Таким чином ви можете бути впевнені, що знаєте, який каталог використовується (а також створювати різні кеші для різних проектів)


2

Багато відповідей правильні! Хочу додати, що ви можете легко знайти своє місце завантаження

gradle --info build

як описано в https://stackoverflow.com/a/54000767/4471199 .

Нові завантажені артефакти будуть показані у 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

У цьому випадку я використовував зображення докера gradle:5.6.2-jdk12. Як бачите, контейнер docker використовує /tmpяк місце для завантаження.


1

У випадку, якщо це проект Android Gradle - ви можете знайти бібліотеки Android під вашою папкою $ ANDROID_HOME / extras / android / m2repository


1

В андроїд-студії виконайте такі дії, щоб перевірити завантажений jarle файл jarle.

  1. Встановіть вигляд структури проекту на "Проект"
  2. Унизу наявний розділ «Бібліотека», розгорніть його.
  3. Тут ви можете переглянути завантажені файли jar. введіть тут опис зображення

1

На моїй машині Windows із плагіном "Buildship 2.0.2", встановленим у затемнення, зберігаються залежності:

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


1

Мені знадобився певний час, щоб зрозуміти це, звідси і додаткова відповідь. Сподіваємось, це може заощадити час для людей. Зауважте, що якщо ви працюєте, sudo gradleзалежності можуть не бути у вашому домашньому каталозі, навіть якщо вони sudo echo $HOMEповертаються /Users/<my-non-root-user>/. На моєму Mac, Gradle кешував залежності в /private/var/root/.gradle/caches/.


0

У моєму випадку я використовував сховище Ivy, і мої залежності від Gradle зберігалися в ~/.ivy2/.


0

Я просто натрапив на це під час пошуку цієї відповіді. Якщо ви використовуєте intellij, ви можете перейти до місця розташування файлів, але відкривши зовнішню папку lib у провіднику проектів, клацнувши правою кнопкою миші на баночці та виберіть Відкрити настройки бібліотеки.введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.