[gradle] 로컬 파일 시스템의 Gradle 저장소

Gradle은 다운로드 한 jar 파일을 로컬 파일 시스템에 어떻게 저장합니까? Maven은 .m2아래 의 디렉토리에 USER_HOME저장하지만 Gradle은 어디에 저장합니까? .gradle폴더를 확인 했지만 컴파일 된 스크립트 만 보았습니다.



답변

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를 캐시로 다운로드하고 전체 경로를 인쇄해야합니다.


답변

Mac, Linux 및 Windows, 즉 3 개의 주요 플랫폼 모두에서 Gradle은 다음 위치에 종속성을 저장합니다.

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


답변

Windows 10 PC에서는 다음 위치에 저장됩니다.

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\


답변

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

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


답변

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

답변

나는 창문에있다

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

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


답변

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

그리고 어떤 경우이든 caches\modules-2\files-2.1의존성을 찾기 위해 파헤쳐 야합니다 .