Gradle не удастся внедрять зависимости в субпроекты с использованием FileTree

StackOverflow https://stackoverflow.com/questions/4691228

Вопрос

Может быть, я что -то упускаю в том, как работает Градл. Что у меня есть здесь, так это родительский проект, который содержит только конфигурацию, то есть не будет какого -либо артефакта, который будет построен при его построении, он просто управляет и строит все свои подпроекты.

Теперь подпроекты делятся некоторой конфигурацией зависимости, поэтому я выяснил, что я бы сделал в 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).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top