Question

Peut-être que je manque quelque chose sur la façon dont fonctionne Gradle. Ce que j'ai ici est un projet parent, qui ne contient la configuration, à savoir il n'y aura pas de artefact en cours de construction lors de la construction, il gère simplement et construit tous ses sous-projets.

Maintenant, les sous-projets partagent une configuration de dépendance, donc je me suis ce que je ferais dans le build.gradle de racine projet est:

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

qui, cependant, ne fonctionne pas, il échoue avec un message d'erreur assez obscure:

  

Un problème est survenu l'évaluation de la racine   'Qype-android Parce projet: Non   signature de la méthode:   org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile ()   est applicable pour les types d'arguments:   (Org.gradle.api.internal.file.DefaultConfigurableFileTree)   valeurs: [set fichier 'lib'] possibles   solutions: module (java.lang.Object)

après quelques essais et erreurs, je pouvais « réparer » ce problème en appliquant le plug-in « java » au projet parent.

Comment venir? Je ne vois nulle part des documents Gradle qu'une dépendance de fileTree requiert le plug-in Java. Même si, pourquoi aurais-je besoin sur le projet qui injectait la configuration, par opposition à sur le projet qui est en cours de configuration (notez que les sous-projets appliquent tous les plug-in Java eux-mêmes)?

Est-ce que cela veut dire que si je N différents sous-projets qui sont toutes natures différentes et d'appliquer différents plug-ins, que les projets parents doivent toujours appliquer l'ensemble de tous plugins êtres utilisés quelque part à lui-même, aussi?

Était-ce utile?

La solution

Il est pas le fileTree qui nécessite le plugin 'java'.

Le message d'erreur se plaint de la configuration de la dépendance compile non définie. Plugin Java définit cette configuration pour vous, afin que vous puissiez ajouter des dépendances (y compris votre FileTree) à lui.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top