Frage

Vielleicht etwas über die Art, wie ich bin fehlt Gradle funktioniert. Was ich habe, hier ist ein übergeordnetes Projekt, das nur Konfiguration enthält, das heißt es wird kein Artefakt sein wird, wenn Gebäude gebaut, es schafft nur und baut alle seine Teilprojekte.

Nun werden die Teilprojekte eine gewisse Abhängigkeit Konfiguration teilen, so dass ich dachte, was ich im Stammprojekt build.gradle tun würde, ist:

subprojects {
  dependencies {
    compile fileTree(dir: 'lib', includes: ['*.jar'])
  }    
}

, dass jedoch nicht funktioniert, es nicht mit einer eher obskuren Fehlermeldung:

ist ein Problem aufgetreten Wurzel Bewertung Projekt 'qype-android' Ursache: Keine Unterschrift des Verfahrens: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile () ist für Argumenttypen anwendbar: (Org.gradle.api.internal.file.DefaultConfigurableFileTree) Werte: [file set 'lib'] Mögliche Lösungen: Modul (java.lang.Object)

Nach einigem Versuch und Irrtum, ich könnte „fix“ dieses Problem durch die Anwendung von ‚Java‘ Plugin auf das übergeordnete Projekt.

Wie kommt das? Ich sehe nicht überall von dem Gradle docs, dass eine fileTree Abhängigkeit die Java-Plugin benötigt. Auch so, warum sollte ich es auf das Projekt benötigen, die die Konfiguration gespritzt werden, im Gegensatz zu auf dem Projekt, das konfiguriert wird (beachten Sie, dass die Teilprojekte alle Java-Plugin selbst anwenden)?

Bedeutet dies, dass, wenn ich N verschiedene Teilprojekte, die alle unterschiedlichen Naturen sind, und gelten verschiedene Plugins, dass die übergeordneten Projekte immer den Satz anwenden müssen alle Plugins Wesen irgendwo selbst verwendet, auch?

War es hilfreich?

Lösung

Es ist nicht der fileTree, die 'Java' erfordert Plugin.

Die Fehlermeldung wird beschwerte sich über undefinierte compile Abhängigkeit Konfiguration. Java-Plugin definiert diese Konfiguration für Sie, so dass Sie Abhängigkeiten hinzufügen können (einschließlich Ihrer filetree) zu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top