用語集 最終更新 2026.09.13

Gradle

Gradle は、Java や Kotlin、Android の開発で使われるビルドツールです。 ビルド設定を XML ではなく Kotlin または Groovy のコードとして書けるのが最大の特徴です。

設定がプログラムであることの意味

Mavenpom.xml は宣言です。Gradle の build.gradle.kts実行されるコードです。条件分岐もループも書けます。

これは強力ですが、両刃です。

  • 良い面:環境ごとにビルドを変える、独自の処理を差し込む、といったことが自然に書ける
  • 悪い面ビルドファイルがアプリ本体より難しくなることがある。書いた人しか読めない状態は実際によく起きる

Android 開発が Gradle を採用しているのは、ビルドの種類(デバッグ/リリース、無料版/有料版など)を組み合わせて生成する必要があり、宣言だけでは足りないからです。

速い理由は「やらないこと」

Gradle が速いのは、処理そのものが速いからではなく、前回から変わっていない部分を実行しないからです。

  • インクリメンタルビルド:入力が変わっていないタスクはスキップする
  • ビルドキャッシュ:以前の出力を再利用する。CI では共有キャッシュも使える
  • デーモン:JVM を常駐させ、毎回の起動コストをなくす

裏を返すと、キャッシュが原因で「直したはずなのに直っていない」が起きます。おかしいと感じたら --rerun-tasks やクリーンビルドで切り分けてください。

Maven とどちらを選ぶか

新規で柔軟性が要るなら Gradle、規約どおりで長く保守するなら Maven、というのが素直な判断です。ただし実際の現場では既存資産とチームの慣れで決まることがほとんどで、性能差が決め手になる場面は多くありません。

実務で見るポイント

  • Gradle Wrapper(gradlew)を必ずコミットする。全員が同じ Gradle 版でビルドできる
  • ビルドスクリプトにロジックを書きすぎない。複雑になったらプラグインへ切り出す
  • Android 案件では実質必須。Java サーバー案件では Maven との併存が続く

依存の版がぶつかったとき、Gradle は既定で高い方を選びます。Maven との違いを同じ依存で試した結果は MavenとGradleの違いは? にまとめています。