Gradle / Programming

ザクっと理解するGradle ディレクトリ – Gradle Android Kotlin

Gradleシリーズです。
なんとなく使っているGradleをザクっと理解できるように書いています。
前回はビルドスキャンをザクっとご紹介しました。
今回はGradle ディレクトリについてご紹介します。

Gradle ディレクトリとは

Gradleは作業の実行と管理のため、Gradle User Home ディレクトリとProject ディレクトリの2つのメインディレクトリを使用します。

Gradle Directoriesより

Gradle User Home ディレクトリとは

グローバル構成プロパティ(global configuration properties)、初期化スクリプト、キャッシュ、ログファイルが保存されています。
デフォルトのディレクトリの場所は、「 ~/.gradle」もしくは「C:\Users\<USERNAME>\.gradle」です。

フォルダ構成は、だいたい下記のようになります。

├── caches // 1
│   ├── 4.8 // 2
│   ├── 4.9 // 2
│   ├── ⋮
│   ├── jars-3 // 3
│   └── modules-2 // 3
├── daemon // 4
│   ├── ⋮
│   ├── 4.8
│   └── 4.9
├── init.d // 5
│   └── my-setup.gradle
├── jdks // 6
│   ├── ⋮
│   └── jdk-14.0.2+12
├── wrapper
│   └── dists // 7
│       ├── ⋮
│       ├── gradle-4.8-bin
│       ├── gradle-4.9-all
│       └── gradle-4.9-bin
└── gradle.properties // 8

1. グローバルキャッシュディレクトリ(プロジェクト固有ではない全て)
2. バージョン固有のキャッシュ(増分ビルドのサポートなどのため)
3. 共有キャッシュ(依存関係のファイルやライブラリなどの成果物など)
4. Gradle Daemonのレジストリ(情報保存場所)とログ
5. グローバル初期化スクリプト(global initialization scripts)
6. ツールチェーンサポート(toolchain support)でダウンロードされたJDK
7. Gradle Wrapperでダウンロードされたバージョン
8. グローバルGradle構成プロパティ(global Gradle configuration properties)

Project ディレクトリとは

プロジェクトのファイル全て、.gradleやbuildなどのGradleが自動的に生成するファイルやディレクトリを含んでいます。

一般的なプロジェクトのルートディレクトリは下記のようになります。

├── .gradle // 1
│   ├── 4.8 // 2
│   ├── 4.9 // 2
│   └── ⋮
├── build // 3
├── gradle
│   └── wrapper // 4
├── gradle.properties // 5
├── gradlew // 6
├── gradlew.bat // 6
├── settings.gradle.kts // 7
├── subproject-one // 8
|   └── build.gradle.kts // 9
├── subproject-two // 8
|   └── build.gradle.kts // 9
└── ⋮

1. Gradleによって生成された、プロジェクト固有のキャッシュディレクトリ
2. バージョン固有のキャッシュ(増分ビルドのサポートなどのため)
3. Gradleがビルドした全てのアーティファクトを格納するディレクトリ
4. JARファイルとGradle Wrapperの構成を含む
5. プロジェクト固有のGradleの構成プロパティ
6. Gradle Wrapperを使用するビルドを実行するためのスクリプト
7. 全てのサブプロジェクトが定義されているプロジェクトの設定ファイル
8. サブプロジェクト
9. 各サブプロジェクト用のビルドファイル

おわりに

次回はマルチプロジェクトのビルドについて解説します。
ご要望等がありましたらお気軽にコメントまでお願いします。

参考文献

Gradle Directories

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です