Gradle wrapper
Gradle の公式ドキュメントでは Gradle wrapper をプロジェクトに追加することが推奨されている。 また、Gradle wrapper のためのファイルをリポジトリに入れて管理することも推奨されている。 具体的には下記の 4 ファイル。
- gradlew (Unix Shell script)
- gradlew.bat (Windows batch file)
- gradle/wrapper/gradle-wrapper.jar (Wrapper JAR)
- gradle/wrapper/gradle-wrapper.properties (Wrapper properties)
Gradle wrapper で使用される Gradle のバージョンは gradle/wrapper/gradle-wrapper.properties
に記述されており、Gradle のバージョンもバージョン管理されることとなる。
バージョン更新の方法
さて、そんな Gradlew wrapper のバージョンを更新する方法について。
gradle-wrapper.properties の変更
上に書いたように Gradle のバージョンは gradle/wrapper/gradle-wrapper.properties
に記述されているので、Gradle wrapper で使用される Gradle のバージョンを更新したい場合は gradle/wrapper/gradle-wrapper.properties
を書きかえれば良い。
distributionUrl = https\://services.gradle.org/distributions/gradle-2.10-all.zip
Android Plugin for Gradle のドキュメントでもこの方法が紹介されている。
gradle wrapper にオプション渡す
Gradle 2.4 からは、gradle wrapper
タスクに --gradle-version
オプションを指定できるようになっており、これでバージョンを更新することもできる。
./gradlew wrapper --gradle-version=2.12
バージョン 2.12 現在の挙動を見たところ、やっていることは gradle/wrapper/gradle-wrapper.properties
を変更しているだけっぽい。 (例えば存在しないバージョンを指定してもエラーにならず gradle/wrapper/gradle-wrapper.properties
ファイルが書き替えられる。 まじか……。)
./gradlew wrapper
し直す
上のどちらかの方法で gradle/wrapper/gradle-wrapper.properties
の記述を変更すれば、それで ./gradlew
で使用される Gradle のバージョンは変更される。
だが、Gradle のバージョンアップで gradlew
ファイルや gradlew.bat
ファイル、gradle/wrapper/gradle-wrapper.jar
ファイルが変更されていることがたまにあって、それらのファイルも合わせて更新しておきたいところである。 それらのファイルも更新するため、gradle/wrapper/gradle-wrapper.properties
の記述を変更したあとに ./gradlew wrapper
コマンドを実行すると良い。 Gradle のバージョンアップで Gradle wrapper のファイルに変更があった場合、プロジェクトの既存の Gradle wrapper のファイルが更新される。
しなかったからといって困ることはないと思うけど、せっかくなので。