gradleの世界をのぞいてみるWrapper編
What Wrapper?
公式によると
ラッパースクリプトは、宣言されたバージョンのGradleを呼び出し、必要に応じて事前にダウンロードします。
この記事は前回の記事の続きです。Gradleを実行するために、AndroidアプリかKotlinのスクリプトを実行するだけのプロジェクトを作ってください。
対象者
- build.gradle & build.gradle.ktsについて知りたい
- Wrapperについて知りたい
Wrapper Basics(ラッパーの基本)
Gradleビルドを実行する推奨される方法は、Gradleラッパーを使用することです。
プロジェクトルートディレクトリのGradlewまたはGradlew.batファイルとして利用できます。
root
├── gradlew // THE WRAPPER
├── gradlew.bat // THE WRAPPER
└── ...
プロジェクトにはこれらのファイルが含まれていない場合、Gradleプロジェクトではない可能性があります。または、ラッパーはまだセットアップされていません。
ラッパーは、インターネットからダウンロードするものではありません。 GradleがインストールされたマシンからGradleラッパーを実行して生成する必要があります。
ラッパーは次の利点を提供します。
- 特定のGradleバージョンを自動的にダウンロードして使用します。
- 特定のGradleバージョンのプロジェクトを標準化します。
- さまざまなユーザーと環境(IDES、CIサーバー…)に同じGradleバージョンを提供します。
- Gradleを手動で取り付けることなく、Gradleビルドを簡単に実行できます。
Gradleラッパーの使用
Gradle を実行する 2 つの方法を区別することが重要です。
- システムにインストールされた Gradle ディストリビューションを使用する—gradleコマンドを実行します。
- Gradle ラッパーの使用- Gradle プロジェクトに含まれるgradlewまたはスクリプトを実行します。gradlew.bat
信頼性が高く、制御され、標準化されたビルド実行を保証するために、ラッパーを使用してビルドを実行する場合は常に Gradle Wrapper が推奨されます。
- システムにインストールされた Gradle ディストリビューションを使用する:
gradle build
- Gradle ラッパーの使用:
Linux または OSX マシンでのラッパー呼び出し:
./gradlew build
Windows PowerShell でのラッパー呼び出し:
gradlew.bat build
別のディレクトリでコマンドを実行する場合は、ラッパーへの相対パスを指定する必要があります。
../gradlew build
次のコンソール出力は、Windows マシンのコマンド プロンプト (cmd) で Java ベースのプロジェクトに対してラッパーを使用する方法を示しています。
$ gradlew.bat build
Downloading https://services.gradle.org/distributions/gradle-5.0-all.zip
.....................................................................................
Unzipping C:\Documents and Settings\Claudia\.gradle\wrapper\dists\gradle-5.0-all\ac27o8rbd0ic8ih41or9l32mv\gradle-5.0-all.zip to C:\Documents and Settings\Claudia\.gradle\wrapper\dists\gradle-5.0-al\ac27o8rbd0ic8ih41or9l32mv
Set executable permissions for: C:\Documents and Settings\Claudia\.gradle\wrapper\dists\gradle-5.0-all\ac27o8rbd0ic8ih41or9l32mv\gradle-5.0\bin\gradle
BUILD SUCCESSFUL in 12s
1 actionable task: 1 executed
ラッパーファイルについて
次のファイルは Gradle Wrapper の一部です。
.
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar ①
│ └── gradle-wrapper.properties ②
├── gradlew ③
└── gradlew.bat ④
- gradle-wrapper.jar: これはGradle Wrapperコードを含む小さなJARファイルです。プロジェクトに適切なバージョンのGradleがまだインストールされていない場合、ダウンロードしてインストールする役割を担います。
- gradle-wrapper.properties: このファイルには、配布 URL (Gradle のダウンロード元) や配布タイプ (ZIP または TARBALL) などの Gradle Wrapper の構成プロパティが含まれています。
- gradlew: これは、 のラッパーとして機能するシェルスクリプト(Unixベースシステム)ですgradle-wrapper.jar。Gradleを手動でインストールすることなく、Unixベースシステム上でGradleタスクを実行するために使用されます。
- gradlew.batgradlew: これは、 と同じ目的を果たしますが、Windows システムで使用されるバッチ スクリプト (Windows) です。
プロジェクトの Gradle バージョンを表示または更新する場合は、次のコマンドラインを使用します。
Linux & Max*
./gradlew --version
./gradlew wrapper --gradle-version 7.2
Windows
gradlew.bat --version
gradlew.bat wrapper --gradle-version 7.2
詳細については、Gradle Wrapper リファレンスを参照してください。
試しに前回作ったKotlinのプロジェクトでコマンドを実行してみるとバージョンが表示された!
私のは、8.10.2になのでこちらに変更する。もしバージョンが違うとインストールして、ニョロニョロが出てきた???
ここは要注意ですね💦
./gradlew --version
./gradlew wrapper --gradle-version 8.10.2
最後に
今回は、ときどき気になっていたWrapperについて調べてみました。gradleのコマンドを実行するときは、このWrapperを実行することが普通のようです。
このコマンドを覚えたことで現在のgradleのバージョンを調べる方法を学ぶことができた🧑🎓
Discussion