During initialization, Gradle reads the
settings.gradle file to figure out which projects are to take part in a build. Gradle creates an object of type
Setting. This happens even before any
build.gradle is parsed. It is usually placed in the root project parallel to
build.gradle. It is recommended to put
setting.gradle in the root project, otherwise we have to explicitly tell Gradle the location to the settings file with the command-line option
-c. Adding these two files to sample 1's directory structure would gives us something as follows:
sample1 ├── repository │ └── ... ├── services │ └── ... ├── web-app │ └── ... ├── build.gradle └── settings.gradle
The most common use of
settings.gradle is to enlist all the subprojects participating in the build:
include ':repository', ':services', ':web-app'
Also, this is all that is required to tell Gradle that the current build is a multiproject build. Of course, this not the end of the story and there is a lot more that...