Gradle не удастся внедрять зависимости в субпроекты с использованием FileTree
-
11-10-2019 - |
Вопрос
Может быть, я что -то упускаю в том, как работает Градл. Что у меня есть здесь, так это родительский проект, который содержит только конфигурацию, то есть не будет какого -либо артефакта, который будет построен при его построении, он просто управляет и строит все свои подпроекты.
Теперь подпроекты делятся некоторой конфигурацией зависимости, поэтому я выяснил, что я бы сделал в Build's Root Project.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.defaultconfigerailityfileTree) значения: [файл набор 'lib'] Возможные решения: модуль (java.lang.object)
После некоторой проб и ошибок я мог бы «решить» эту проблему, применив плагин «Java» к родительскому проекту.
Почему? Я не вижу нигде от доктора Градл, что fileTree
Зависимость требует плагина Java. Несмотря на это, зачем мне это понадобиться в проекте, который вводит конфигурацию, в отличие от настройки проекта (обратите внимание, что все подпроекты сами применяют плагин Java)?
Означает ли это, что если у меня есть разные подпроекты, которые все различаются и применяют разные плагины, то родительские проекты всегда должны применять набор все Плагины существуют где -то к себе?
Решение
Это не fileTree
Это требует плагина «Java».
Сообщение об ошибке жалуется на неопределенное compile
Конфигурация зависимости. Плагин Java определяет эту конфигурацию для вас, так что вы можете добавить к ней зависимости (включая ваш FileTree).