Первое, что нужно знать, это то, что Gradle использует AST для dependecies
синтаксиса закрытия , этот ответ здесь хорошо объясняет, что такое AST.
Я поговорю оВ приведенном выше фрагменте кода вы правы относительно того, какой блок кода делегируется DependencyHandler
, строка определяется здесь как
Чтобы объявить конкретную зависимость для конфигурацииВы можете использовать следующий синтаксис:
dependencies {
configurationName dependencyNotation1, dependencyNotation2, ...
}
Здесь важно отметить, что приведенный выше код синтаксис , предоставленный Gradle, чтобы сделать код чистым и лаконичным.Вы также можете использовать метод DependencyHandler.add(String,Object)
Например
dependencies {
add('compile', fileTree(dir: "libs", include: "*.jar"))
}
По сравнению с приведенным выше синтаксисом, верхний синтаксис позволяет вам добавлять несколько зависимостей в одном выражении и являетсянамного более чистый.
fileTree()
, files()
и т. д. - методы, определенные в Project
.Начиная с DependencyHandler.add(String,Object)
, второй аргумент имеет тип Object
, так как метод, а также синтаксис зависимостей может принимать ряд типов зависимостей, таких как ProjectDependency
, другие Configuration
s и FileCollection
и его подчиненныетипы, как вы упомянули ConfigurableFileCollection
.