Ключевое слово dependencies
предоставляется методом экземпляра Project
, с которым сравнивается файл build.gradle
. Это позволяет конфигурировать несколько типов зависимостей через DependencyHandler
. Вы можете добавить файловые зависимости, зависимости проекта и зависимости модуля, которые могут быть разрешены из репозиториев Maven и Ivy.
Поскольку он предоставляется экземпляром Project
напрямую, он доступен в каждом проекте Gradle.
Ключевое слово depends
не существует в Gradle API. Тем не менее, Gradle предоставляет множество возможностей для расширения и программирования ваших сценариев сборки. С помощью так называемых дополнительных свойств можно определить дополнительные свойства в области действия объектов Gradle, например задачи и проекты. Затем эти дополнительные свойства можно использовать как обычные свойства Gradle, как в вашем примере.
Я нашел в ваших примерах скрипт полной сборки . В начале скрипта закрытие subprojects
используется для определения дополнительных свойств для всех подпроектов:
subprojects {
[...]
ext.provides = [] // The provided java packages, e.g. ['org.objectweb.asm']
ext.requires = [] // The required Gradle projects, e.g. [':asm-test']
ext.depends = [] // The external dependencies, e.g. ['junit:junit:4.12']
[...]
}
provides
, required
и depends
- это списки Groovy, которые затем используются для хранения строк.
Ваш первый пример кода устанавливает новый список для дополнительного свойства depends
подпроекта :tools:bnd-module-plugin
.
Ваш второй использует эти списки для добавления зависимостей модуля (depends
) или проекта (requires
) ко всем подпроектам.
Как видите, depends
- это просто часть пользовательского скрипта Gradle, а не официальный API Gradle, в отличие от dependencies
.