Назначение buildScript в Gradle

Я новичок в Gradle, и я читаю документацию, но я не понимаю ее частей. Одна из этих частей связана с блоком buildScript. Какова его цель?

Если ваша сборка script должна использовать внешние библиотеки, вы можете добавить их в путь класса script в самой сборке script. Вы делаете это с помощью метода buildscript(), передавая в закрытии, который объявляет путь сборки script.

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath group: 'commons-codec', name: 'commons-codec', version: '1.2'
  }
}

Хорошо, но в чем разница:

repositories {
  mavenCentral()
}
dependencies {
  compile group: 'commons-codec', name: 'commons-codec', version: '1.2'
}

Например, зачем нужно использовать buildScript?

Ответ 1

Блок buildScript определяет, какие плагины, классы задач и другие классы доступны для использования в остальной части сборки script. Без блока buildScript вы можете использовать все, что поставляется с Gradle из коробки. Если вы также хотите использовать сторонние плагины, классы задач или другие классы (в сборке script!), Вы должны указать соответствующие зависимости в блоке buildScript.

Ответ 2

  • В разделах глобального уровня dependencies и repositories перечислены зависимости, необходимые для создания источника и запуска вашего источника и т.д.
  • buildscript предназначен для самого файла build.gradle. Таким образом, это будет содержать зависимости, например, создание RPM, Dockerfile и любых других зависимостей для выполнения задач во всех зависимых build.gradle

Ответ 3

Я ценю ответ Питера... но мне не сразу стало ясно, что остальная часть сборки script означает как подчеркнуто в ответе и в документации.

Обычно вложение зависимых функций предназначено для использования в программе Java или любой другой программе, которую вы могли бы написать. Присвоение Spring, скажем, не должно использоваться в сборке script, а в программе Java. Помещение в закрытие buildscript гарантирует, что зависимости доступны для использования внутри самой сборки gradle. Не выходная программа.

Ответ 4

Раздел конфигурации "buildscript" предназначен для самого gradle (т.е. изменения того, как gradle может выполнить сборку). Таким образом, этот раздел обычно включает плагин Android gradle.