Gradle Documentation(3) - Gradle-managed Directories


Ref. Gradle v.7.4.1
📌 この記事では、正式なドキュメントのGradle管理ディレクトリの部分だけを紹介します.

The Directories and Files Gradle Uses


Gradleは、2つの主要ディレクトリ(Gradleユーザーホームディレクトリとプロジェクトルートディレクトリ)を使用して操作を実行および管理します.次の2つのセクションでは、格納されている内容と、一時ファイルとディレクトリのクリーンアップについて説明します.

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


プロジェクトルートディレクトリには、プロジェクトの一部であるすべてのソースファイルが含まれます.また、Gradleで作成されたファイルとディレクトリ、例えば.gradlebuildも含まれています.前者は通常ソース制御をチェックインし、後者は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日間使用していない場合は削除します.