できない.dev

Gradle「does not contain a Gradle build」の原因と直し方

does not contain a Gradle build は、settings.gradle のあるプロジェクトのルートで実行すれば直る。
親へさかのぼっても settings ファイルが無く、build ファイルも無いと出る。

公開: 更新:

症状できない · exit 1
gradle build
…
FAILURE: Build failed with an exception.
* What went wrong:
Directory '/tmp/tmp.MrSWTwMj9P/repo' does not contain a Gradle build.
解決後できた · exit 0
gradle build
…
BUILD SUCCESSFUL in 6s
1 actionable task: 1 executed
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.8.2/userguide/configuration_cache_enabling.html

2026-10-30 に gradle:jdk21(Python 3.14.4 / Git 2.53.0) で実際に打って取った出力。検証環境の詳細

要約

gradle build や ./gradlew build を実行すると、タスクが 1 つも動かずに止まる。

Directory '/home/user/work' does not contain a Gradle build.

続けて、ルートに置くべき settings ファイルと build ファイルの名前と、gradle init で新しいビルドを作れることが表示される。

does not contain a Gradle build は、Gradle がビルドの定義を見つけられなかったという意味だ。
Gradle のビルドは、実行したディレクトリかその親にある settings.gradle / settings.gradle.kts で決まる(Gradle 7.0 へのアップグレードガイド(新しいタブで開く))。
今いるディレクトリから親へ順に探しても settings ファイルが無く、今いるディレクトリに build.gradle / build.gradle.kts も無いと、このエラーになる。

逆に、プロジェクトの中のサブディレクトリで実行した場合は、親の settings ファイルが見つかるのでこのエラーは出ない。
出たときは、プロジェクトの外にいることを疑う。

実行例

gradle:jdk21 のコンテナ(Gradle 9.8.2)で、android/ にプロジェクトがあるリポジトリのルートから gradle build を打つと、does not contain a Gradle build で終了コード 1 になった。android/ へ移るか -p android を付けると、同じコマンドが BUILD SUCCESSFUL で終了コード 0 になった。

$ gradle --version
------------------------------------------------------------
Gradle 9.8.2
------------------------------------------------------------
 
Build time:    2026-10-19 16:29:26 UTC
Revision:      8de7bcf76e785507ad92f0741ab9235a430c95e6
 
Kotlin:        2.4.10
Groovy:        4.0.33
Ant:           Apache Ant(TM) version 1.10.17 compiled on April 6 2026
Launcher JVM:  21.0.13 (Eclipse Adoptium 21.0.13+9-LTS)
Daemon JVM:    /opt/java/openjdk (no Daemon JVM specified, using current Java home)
OS:            Linux 6.6.87.2-microsoft-standard-WSL2 amd64
$ gradle build
Starting a Gradle Daemon (subsequent builds will be faster)
 
FAILURE: Build failed with an exception.
 
* What went wrong:
Directory '/tmp/tmp.MrSWTwMj9P/repo' does not contain a Gradle build.
 
A Gradle build's root directory should contain one of the possible settings files: settings.gradle, settings.gradle.kts, settings.gradle.dcl. It may also contain one of the possible build files: build.gradle, build.gradle.kts, build.gradle.dcl.
 
To create a new Gradle build in this directory run 'gradle init'
 
For more information about the 'init' task, please refer to https://docs.gradle.org/9.8.2/userguide/build_init_plugin.html in the Gradle documentation.
 
For more details on creating a Gradle build, please refer to https://docs.gradle.org/9.8.2/userguide/tutorial_using_tasks.html in the Gradle documentation.
 
* Try:
> Run gradle init to create a new Gradle build in this directory.
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Get more help at https://help.gradle.org.
 
BUILD FAILED in 1s
$ echo $?
1
$ ls settings.gradle.kts
settings.gradle.kts
$ gradle build
> Task :compileJava NO-SOURCE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :jar
> Task :assemble
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build
 
BUILD SUCCESSFUL in 6s
1 actionable task: 1 executed
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.8.2/userguide/configuration_cache_enabling.html
$ echo $?
0
$ gradle -p android build
> Task :compileJava NO-SOURCE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :jar UP-TO-DATE
> Task :assemble UP-TO-DATE
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build UP-TO-DATE
 
BUILD SUCCESSFUL in 456ms
1 actionable task: 1 up-to-date
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.8.2/userguide/configuration_cache_enabling.html
$ echo $?
0
$ ls
build
build.gradle.kts.txt
setting.gradle.kts
$ gradle build
FAILURE: Build failed with an exception.
 
* What went wrong:
Directory '/tmp/tmp.MrSWTwMj9P/repo/android' does not contain a Gradle build.
 
A Gradle build's root directory should contain one of the possible settings files: settings.gradle, settings.gradle.kts, settings.gradle.dcl. It may also contain one of the possible build files: build.gradle, build.gradle.kts, build.gradle.dcl.
 
To create a new Gradle build in this directory run 'gradle init'
 
For more information about the 'init' task, please refer to https://docs.gradle.org/9.8.2/userguide/build_init_plugin.html in the Gradle documentation.
 
For more details on creating a Gradle build, please refer to https://docs.gradle.org/9.8.2/userguide/tutorial_using_tasks.html in the Gradle documentation.
 
* Try:
> Run gradle init to create a new Gradle build in this directory.
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Get more help at https://help.gradle.org.
 
BUILD FAILED in 390ms
$ echo $?
1

— 2026-10-30 時点の出力

検証環境Python 3.14.4 / Git 2.53.0 / 2026-10-30 検証
検証日
実行環境
gradle:jdk21 Ubuntu 26.04.1 LTS
バージョン
  • Python 3.14.4
  • Git 2.53.0

この記事の「実行例」は、上記の環境で実際にコマンドを実行して得られた出力をそのまま掲載しています。 再現手順はリポジトリの検証スクリプトとして管理し、定期的に再実行して出力を更新しています。

解決策

1. プロジェクトのルートで実行する

cd android
ls settings.gradle*   # これがあるディレクトリがビルドのルート
./gradlew assembleDebug

2. 移動せずに -p でルートを指す

-p(--project-dir)は Gradle の開始ディレクトリを指定するオプションで、既定は今いるディレクトリだ(Command-Line Interface(新しいタブで開く))。

./android/gradlew -p android assembleDebug

GitHub Actions なら、ステップの working-directory をプロジェクトのルートにしても同じことになる。

- run: ./gradlew build
  working-directory: android

3. 新しく作るなら gradle init

gradle init は、settings ファイルが無いディレクトリでも実行できる。--type を付けなければ、Gradle が種類を推測し、決められないときは basic で雛形を作る(Build Init Plugin(新しいタブで開く))。

gradle init --type java-application --dsl kotlin

中身の無いビルドでよければ、空の settings.gradle.kts をルートに置くだけでもこのエラーは消える。

よくある原因

  1. プロジェクトの外で実行している。
    Gradle のプロジェクトがリポジトリのサブディレクトリにある構成(backend/ や、モバイルアプリの android/ など)で、リポジトリのルートから実行している。
    モノレポで起きやすい。
  2. gradlew を別の場所から呼んでいる。android/gradlew assembleDebug のようにパスを付けて呼んでも、Gradle がビルドの開始場所にするのは今いるディレクトリだ。gradlew が置かれたディレクトリではない。
  3. ファイル名が違う。setting.gradle(s が無い)や build.gradle.txt は、settings ファイル・build ファイルとして扱われない。
  4. まだビルドを作っていない。
    空のディレクトリで gradle build を実行している。