はじめに
Android StudioでDokkaを利用しようとした際に、公式通りに./gradlew dokkaHtml
を利用して生成しようとしていたがうまくいかず、gradle dokkaHtml
を利用するとうまく生成された。違いはなにかが気になり、調べてみました。
./gradlew
と gradle
の違い
Gradleは、JavaやKotlinなどのプロジェクトで広く使用されているビルドツールです。Gradleを使用する際には、./gradlew
(Gradle Wrapper)と gradle
(システムにインストールされたGradle)という2つの方法があります。
./gradlew
とは?
./gradlew
は Gradle Wrapper の実行ファイルです。プロジェクトで指定されたGradleバージョンを使用してビルドを実行します。
特徴
- プロジェクトに含まれるGradleラッパーを使用
- 指定されたバージョンを自動的にダウンロードして使用
- システムにGradleがインストールされていなくても動作
ファイル構成
ファイル名 | 説明 |
---|---|
gradlew |
Unix系の実行ファイル |
gradlew.bat |
Windows用の実行ファイル |
gradle/wrapper/gradle-wrapper.properties |
Wrapperの設定ファイル |
gradle
とは?
gradle
は、システムにインストールされたGradle を使用してビルドを実行するコマンドです。
特徴
- ローカルにインストールされたGradleを使用
- プロジェクトで指定されたバージョンではなく、システムのバージョンを使用
- Gradleを事前にインストールしておく必要がある
./gradlew
と gradle
の違い
特徴 |
./gradlew (Gradle Wrapper) |
gradle (システムのGradle) |
---|---|---|
バージョン管理 | プロジェクトで指定されたバージョン | システムにインストールされたバージョン |
インストールの必要性 | 不要(自動ダウンロード) | 必要 |
環境依存性 | 低い(環境に依存しない) | 高い(環境に依存) |
CI/CDでの利用 | 推奨される | 非推奨 |
初回実行時の動作 | Gradleを自動ダウンロード | 既存のGradleを使用 |
どちらを使うべきか?
シーン | 推奨される方法 |
---|---|
チーム開発 | ./gradlew |
CI/CDパイプライン | ./gradlew |
個人開発(高速ビルド重視) | gradle |
Gradle未インストール環境 | ./gradlew |