Build.gradle: компилировать группу против компиляции, buildscript, classpath

В чем разница между "группой компиляции" и "компиляцией"? Еще один способ определить зависимость?

Пример:

compile group: 'org.slf4j', name: 'slf4j-jcl', version: '1.7.21'

И я думаю, что это тоже сработает:

compile("org.slf4j:slf4j-jcl:1.7.21")

Почему у меня есть объявление mavenCentral() снова и еще один блок зависимостей внутри блока buildscript?

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE")
    }
}

С моей точки зрения, когда вы компилируете что-то, это будет в вашем классеPath?

Ответ 1

compile определяет внешнюю зависимость для проекта, который вы строите. compile требуются группа, имя и версия. Их можно либо разбить, либо указать с помощью краткой формы "группа: имя: версия". см. Основы управления зависимостями Gradle

Блок buildscript объявляет зависимости самой сборки gradle, в то время как обычный блок зависимостей объявляет зависимости проекта, который вы собираетесь построить