Gradle зависимостей buildscript

В чем разница между объявлением репозиториев в разделе buildScript сборки gradle или в корневом уровне сборки.

Вариант 1:

build.gradle

buildScript {
    repositories {
        mavenCentral();
    }
}

или

build.gradle

repositories {
    mavenCentral();
}

Ответ 1

Репозитории в блоке buildScript используются для получения зависимостей ваших зависимостей buildScript. Это зависимости, которые помещаются в путь к классам вашей сборки и которые вы можете ссылаться на ваш файл сборки. Например, дополнительные плагины, которые существуют в Интернете.

Репозитории на корневом уровне используются для получения зависимостей, от которых зависит ваш проект. Итак, все зависимости, необходимые для компиляции вашего проекта.

Ответ 2

Конструкция script (т.е. build.gradle) может иметь некоторые зависимости для выполнения самой сборки script. Вы должны были заключать эти зависимости внутри блока buildScript. Глава 4 из Gradle Помимо основ подробно описывает это.