Gradleの更新時にall.zipを一発で取得する

普通にgradlew wrapper --gradle-version=x.y.zとコマンドを叩くと、取得されるGradleのzipファイルはgradle-x.y.z-bin.zipall.zipを取得するにはAndroidStudioのサジェストに従うか、あるいはgradle-wrapper.propertiesを修正する必要がある。

最初からコマンドラインでgradle-x.y.z-all.zipを取得するにはbuild.gradleファイルに一手間必要

groovy
// rootのbuild.gradle
task wrapper(type: Wrapper) {
  gradleVersion = "x.y.z"
  distributionType "ALL"
}

まあこれを設定しても今まで通りwrapperタスクを二度実行する必要があるのは変わらないけど、コマンドは短くなるしall.zipを取得し直す手間もなくなる。

Gradleの該当コードはこのあたり

gradlew wrapper --gradle-version=x.y.z --distribution-type=ALLとかやっても同じ動作になりそう。

2018/07/04追記

上の方法、Gradle5.0から使えなくなるらしく実行時に警告が出るようになっていた。

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.8.1/userguide/command_line_interface.html#sec:command_line_warnings

上記のようなメッセージが表示されるのみで最初はわからなかったんだけど、表示されるリンク先にあるように --warning-mode=all を指定して適当なタスクを実行してみたら詳細なエラーがでた。

Creating a custom task named 'wrapper' has been deprecated and is scheduled to be removed in Gradle 5.0. You can configure the existing task using the 'wrapper { }' syntax or create your custom task under a different name.'.
        at build_b74mo1uay274dql3ctg39y5sg.run(/Users/user_name/repos/some_project/build.gradle:38)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)

なるほど。

wrapper {
    gradleVersion = '4.8.1'
    //noinspection UnnecessaryQualifiedReference
    distributionType = Wrapper.DistributionType.ALL
}

みたいに変更したらメッセージは消えた。