모종닷컴

Gradle 디렉토리 본문

Programming/Gradle

Gradle 디렉토리

모종 2022. 9. 4. 19:07
반응형

Gradle은 사용자 홈 티렉토리와 프로젝트 루트 디렉토리 두 가지 디렉토리를 사용하여 작업을 수행하고 관리합니다. 

사용자 홈 디렉토리

Gradle 사용자 홈 디렉토리는 글로벌 속성 구성과 초기화 스크립트, 캐시 및 로그 파일을 저장하는 데 사용됩니다. 디폴트 경로는 $USER_HOME/.gradle 입니다. 문서에서 설명하는 대략적인 구조는 아래 사진과 같다고 합니다. 각각 디렉토리에 대한 설명을 보도록 하겠습니다.

https://docs.gradle.org/current/userguide/directory_layout.html

  1. 모든 프로젝트가 사용하는 글로벌 캐시 디렉토리입니다. 
  2. 버전별 캐시입니다. (예: 증분 빌드 지원)
  3. 공유 캐시 (예 :  디펜던시의 아티팩트)
  4. Gradle 데몬의 레지스트리 및 로그 디렉토리입니다.
  5. 글로벌 초기화 스크립트
  6. toolchain support에서 다운로드한 JDK
  7. Gradle Wrapper에서 다운로드한 배포
  8. 전역 Gradle 구성 속성

제 로컬에서도 들어가봤는데 사진이랑은 조금 상이하지만 거의 똑같이 존재하네요.

캐시 및 배포 정리(cleanup)

버전 4.10부터 Gradle은 자동으로 사용자 홈 티렉토리를 정리한다고 합니다. Gradle 데몬이 중지되거나 종료될 때 백그라운에서 정리가 실행된다고 합니다. --no-daemon을 사용한다면 진행률 표시기와 함께 빌드 세션 후 foreground에서 실행된다고 합니다.

다음과 같은 클린업 전략이 주기적(최대 24시간)으로 적용됩니다. 

  • caches/<gradle-version> 디렉토리의 버전별 캐시가 아직 사용중인지 확인합니다. 그렇지 않은 경우는 릴리즈 버전의 디렉토리는 30일 동안 사용되지 않았으면 삭제되고, 스냅샷 버전 디렉토리는 7일 동안 사용되지 않았으면 삭제됩니다.
  • 공유 캐시 caches/jars-*가 사용 중인지 확인합니다. 아직 사용 중인 Gradle 버전이 없으면 삭제됩니다.
  • 현재 그레이들 버전이 캐시에서 사용하는 공유 캐시의 파일(예: jar-3 또는 module-2)은 마지막으로 엑세스한 때를 확인합니다. 파일을 로컬로 다시 만들 수 있는지 또는 원격 저장소에서 다시 다운로드해야 하는지에 따라 각각 엑세스하지 않은지 7일 또는 30일 후에 삭제됩니다.
  • wrapper/dists의 그레이들 배포가 여전히 사용 중인지, 즉 해당 버전별 캐시 디렉토리가 있는지 확인합니다. 사용되지 않은 배포는 삭제됩니다.
본문을 읽어보면서 제 로컬도 같이 보고 있었는데, 사용기간이 지난 폴더는 삭제가 안되고 있었습니다. 일단 그레이들 데몬이 실행중인지 보기 위해서는 터미널에 gradle --status 커맨드를 입력하면 되는데 저는 출력물이 다음처럼 안내하고 있습니다. "현재 그레이들 버전에 대한 데몬이 실행중이지 않다" 그레이들 데몬이 언제 실행이 되는지는 모르겠지만 그레이들 데몬이 실행되었다가 종료되어야지 클린업을 할텐데 지금 제 로컬의 그레이들은 데몬을 실행안한다는 것일까요.. 포스팅 이후에 좀 더 알아봐야겠습니다

프로젝트 루트 디렉토리

프로젝트 루트 디렉토리에는 프로젝트의 일부인 소스 파일이 포함됩니다. 또한 .gradle 및 build와 같은 Gradle에 의해 생성된 파일 및 디렉토리를 포함합니다.  .gradle는 일반적으로 source control에 체크되지만 build는 증분 빌드 같은 빌드 기능을 지원하기 위해 그레이들에 의해 사용되는 임시파일입니다. 일반적인 프로젝트 루트 디렉토리의 구조는 아래와 같습니다.

https://docs.gradle.org/current/userguide/directory_layout.html

  1. Gradle에서 생성한 프로젝트별 캐시 디렉토리입니다.
  2. 버전별 캐시 (예: 증분 빌드 지원)
  3. 프로젝트의 빌드 디렉토리로 Gradle이 생성하는 모든 빌드 아티팩트로 구성됩니다.
  4. gradle-wrapper.jav 파일 및 gradle-wrapper.properteis
  5. 프로젝트 Gradle 구성 프로퍼티입니다.
  6. Gradle Wrapper 를 사용하여 빌드를 실행하기 위한 스크립트
  7. 서브프로젝트 목록이 정의된 프로젝트의 설정 파일
  8. 프로젝트의 서브프로젝트. 서브프로젝트로 구성하지 않았다면 없겠죠?
  9. 서브 프로젝트의 Gradle 빌드 스크립트입니다. 

프로젝트 캐시 정리(cleanup)

버전 4.10부터 Gradle은 프로젝트별 캐시 디렉토리를 자동으로 정리합니다. 프로젝트를 빌드한 후 버전별 캐시 디렉토리 .gradle/<gradle-version>/ 가 여전히 사용 중인지 여부를 주기적으로 확인합니다. 7일 동안 사용하지 않으면 삭제됩니다.

 

원문

https://docs.gradle.org/current/userguide/directory_layout.html

반응형