[번역] Gradle 공식문서 - Gradle-managed Directories

공혁준·2022년 3월 22일
0
post-thumbnail

Ref. Gradle v.7.4.1
📌 이 글에서는 공식문서의 Gradle-managed Directories 부분만 다룹니다.

The Directories and Files Gradle Uses

Gradle은 Gradle 사용자 홈 디렉터리와 프로젝트 루트 디렉터리라는 두 가지 기본 디렉터리를 사용하여 작업을 수행하고 관리합니다. 다음 두 섹션에서는 각각에 무엇이 저장되고 임시 파일과 디렉터리가 정리되는지 설명합니다.

Gradle user home directory

Gradle 사용자 홈 디렉터리(기본적으로 $USER_HOME/.gradle)는 전역 구성 속성과 초기화 스크립트, 캐시 및 로그 파일을 저장하는 데 사용됩니다. 대략 다음과 같이 구성됩니다.

├── caches // 전역 캐시 디렉토리(프로젝트에 특정하지 않은 모든 것)
│   ├── 4.8 // 버전별 캐시(예: 증분 빌드 지원)
│   ├── 4.9 // 버전별 캐시(예: 증분 빌드 지원)
│   ├── ⋮
│   ├── jars-3 // 공유 캐시(예: 종속성 아티팩트용)
│   └── modules-2 // 공유 캐시(예: 종속성 아티팩트용)
├── daemon // Gradle 데몬의 레지스트리 및 로그 
│   ├── ⋮
│   ├── 4.8
│   └── 4.9
├── init.d // 전역 초기화 스크립트
│   └── my-setup.gradle
├── jdks // toolchain 지원에서 다운로드한 JDK
│   ├── ⋮
│   └── jdk-14.0.2+12
├── wrapper
│   └── dists // Gradle Wrapper에서 다운로드한 배포판
│       ├── ⋮
│       ├── gradle-4.8-bin
│       ├── gradle-4.9-all
│       └── gradle-4.9-bin
└── gradle.properties // 전역 Gradle 구성 속성

Cleanup of caches and distributions

버전 4.10부터 Gradle은 자동으로 사용자 홈 디렉토리를 정리합니다. 정리는 Gradle 데몬이 중지되거나 종료될 때 백그라운드에서 실행됩니다. --no-daemon을 사용하는 경우 시각적 진행률 표시기와 함께 빌드 세션 후 포그라운드에서 실행됩니다.

Project root directory

프로젝트 루트 디렉토리에는 프로젝트의 일부인 모든 소스 파일이 포함되어 있습니다. 또한 .gradlebuild와 같이 Gradle에서 생성되는 파일 및 디렉터리가 포함되어 있습니다. 전자는 일반적으로 소스 제어에 체크인되지만 후자는 증분 빌드와 같은 기능을 지원하기 위해 Gradle에서 사용하는 임시 파일입니다. 전반적으로 일반적인 프로젝트 루트 디렉터리의 구조는 대략 다음과 같습니다.

├── .gradle // Gradle에서 생성된 프로젝트별 캐시 디렉토리
│   ├── 4.8 // 버전별 캐시(예: 증분 빌드 지원)
│   ├── 4.9 // 버전별 캐시(예: 증분 빌드 지원)
│   └── ⋮
├── build // Gradle이 모든 빌드 아티팩트를 생성하는 이 프로젝트의 빌드 디렉토리
├── gradle
│   └── wrapper // JAR 파일 및 Gradle Wrapper 구성 포함
├── gradle.properties // 프로젝트별 Gradle 구성 속성
├── gradlew // Gradle Wrapper를 사용하여 빌드를 실행하기 위한 스크립트
├── gradlew.bat // Gradle Wrapper를 사용하여 빌드를 실행하기 위한 스크립트
├── settings.gradle or settings.gradle.kts// 하위 프로젝트 목록이 정의된 프로젝트의 설정 파일
├── subproject-one // 일반적으로 프로젝트는 하나 이상의 하위 프로젝트로 구성됩니다.
|   └── build.gradle or build.gradle.kts // 각 하위 프로젝트에는 자체 Gradle 빌드 스크립트가 있습니다.
├── subproject-two // 일반적으로 프로젝트는 하나 이상의 하위 프로젝트로 구성됩니다.
|   └── build.gradle or build.gradle.kts // 각 하위 프로젝트에는 자체 Gradle 빌드 스크립트가 있습니다.
└── ⋮

Project cache cleanup

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

profile
몰입을 즐기는 개발자입니다.

0개의 댓글