Может быть, я что-то упускаю из-за того, как работает Gradle.Здесь у меня есть родительский проект, который содержит только конфигурацию, т.е. при его создании не будет создаваться артефакт, он просто управляет и создает все свои подпроекты.
Теперь подпроекты имеют общую конфигурацию зависимостейпоэтому я решил, что я бы сделал в build.gradle корневого проекта:
subprojects {
dependencies {
compile fileTree(dir: 'lib', includes: ['*.jar'])
}
}
, что, однако, не работает, происходит сбой с довольно неясным сообщением об ошибке:
Возникла проблема при оценке корневого проекта 'qype-android' Причина: нет подписи метода: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile () применимо для типов аргументов: (org.gradle.api.internal.file.DefaultConfigurableFileTree) значения: [набор файлов 'lib'] Возможные решения: module (java.lang.Object)
после некоторых проб и ошибок я мог бы «исправить» эту проблемуприменив плагин 'java' к родительскому проекту.
Почему?Я не вижу в документации Gradle, что для зависимости fileTree
требуется плагин Java.Тем не менее, зачем мне это нужно для проекта, который внедряет конфигурацию, а не для проекта, который настраивается (обратите внимание, что все подпроекты сами применяют плагин Java)?
Означает ли это, чтоесли у меня есть N разных подпроектов, которые имеют различную природу, и применяют разные плагины, то родительские проекты должны всегда применять набор всех плагинов существ, также используемых где-то для себя?