로컬 파일 시스템의 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하면 dep를 캐시로 다운로드하고 전체 경로를 인쇄해야합니다.


62
Gradle 2.4 용 Mac에서는 (현재)에 ~/.gradle/caches/modules-2/files-2.1있습니다.
Arjan

4
좌측 시프트 연산자 <<Gradle을 3.2 중단되고 mrhaki.blogspot.com/2016/11/...
rvazquezglez

1
왼쪽 시프트 연산자는 더 이상 사용되지 않지만 여전히 작동합니다 (Gradle 4.10 기준). Gradle 5
Sam

272

Mac, Linux 및 Windows, 즉 3 개의 주요 플랫폼 모두에서 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에서이 디렉토리를 찾는 간단한 명령입니다.
Dmitriy Popov


13

종속성 파일을 특정 폴더에 배치하려면 copy작업을 사용하면 됩니다. 예를 들어.

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

당신의 작업은 콘솔에서 NO-SOURCE를 인쇄하고 의존성을 복사하지 않습니다 !!
Mojtaba

12

Gradle의 로컬 저장소 폴더는 다음과 같습니다.

  • $ USER_HOME / .gradle / caches / modules-2 / files-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.RELEASE.jar

MD5는 더 이상 사용되지 않으며 SHA1 값을 사용합니다
alphaguy

그 후 FILE_HASH_VALUE이 (가) 더 일반적이었습니다. 귀하의 의견 alphaguy에 감사드립니다.
nix

7

나는 창문에있다

내부의 의존성을 찾을 수 있어야합니다

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


6
Gradle 2.4 용 Mac에서는 (현재)에 ~/.gradle/caches/modules-2/files-2.1있습니다.
Arjan

Windows 10을 사용하고 C : \ Users [user] \. gradle \ caches \ modules-2 \ files-2.1
user666

5

실제로 캐시 위치는 GRADLE_USER_HOME환경 변수 값 에 따라 다릅니다 . 기본적 $USER_HOME/.gradle으로 Unix-OS 기반 및 %userprofile%.\gradleWindows에 있습니다.
그러나이 변수를 설정하면 캐시 디렉토리는이 경로에서 찾을 수 있습니다.

그리고 어떤 경우이든 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. 보다시피, 도커 컨테이너는 /tmp다운로드 위치로 사용합니다 .


1

Android gradle 프로젝트 인 경우 $ ANDROID_HOME / extras / android / m2repository 폴더 아래에서 Android 라이브러리를 찾을 수 있습니다


1

android studio에서 gradle 다운로드 jar 파일을 확인하려면 다음 단계를 수행하십시오.

  1. 프로젝트 구조보기를 "프로젝트"로 설정
  2. 사용 가능한 외부 라이브러리 섹션에서 확장하십시오.
  3. 여기에서 다운로드 한 jar 파일을 볼 수 있습니다. 여기에 이미지 설명을 입력하십시오

1

Eclipse에 "Buildship 2.0.2"플러그인이 설치된 내 Windows 시스템에서 종속성이 저장됩니다.

$ USER_HOME.gradle \ caches \ modules-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 폴더를 열고 jar를 마우스 오른쪽 버튼으로 클릭하고 라이브러리 설정 열기를 선택하십시오.여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.