Gradle: Comment faire une compilation portée de dépendance de fichiers exclus dans l'emballage?

J'ai un multi-module gradle projet avec les actions suivantes structure de base:

root
  core
  c-interface
  m-interface

Le c-interface et m-interface de deux dépendent de la base de projet:

compile project(':root:core')

c-interface et m-interface de la GUERRE plugin, mais que le coeur n'est qu'un bocal.

Dans le noyau du projet, je suis en tirant dans certains système de fichiers de dépendances avec le suivant. L'une de ces dépendances je ne peux pas emballés, dans les Guerres généré par c-interface et m-interface. Auparavant j'ai eu cette dépendance dans un nexus repository maven afin que je puisse l'exclure par le groupe,le nom,la version, dans un providedRuntime configuration en c-interface et m-interface.

Je ne peux pas comprendre comment faire la même chose pour le fichier de dépendance. Le gradle dépendances de la tâche n'a pas la liste des dépendances de fichiers, donc je ne sais pas ce que je mettrais dans un providedRuntime.

J'ai lu http://issues.gradle.org/browse/GRADLE-471 mais en essayant d'utiliser l'idée, il ne semble pas supprimer l'archive de mes paquets. Voici ce que je suis actuellement en train de définir (dans le noyau de la construction.gradle):

compile fileTree(dir: 'dependencies/compile/archive', include: '*.jar', exclude: 'management.jar')
compile(files('dependencies/compile/archive/management.jar')){ notPackaged = true  } //Excludes it from all publications

Mise à jour

providedCompile sans guerre plugin regardé comme une possibilité. J'ai mis cela dans le système de base.gradle et il a compilé bien, mais c de l'interface et m-interface a aussi besoin de dépendance au moment de la compilation. Y compris le fichier en tant que providedCompile (ou même un test de cohérence avec la compilation en c-interface et m-interface ne résout pas le temps de compilation des erreurs liés au manque de la management.jar la dépendance. À mon avis, parce qu'il était déjà étendue que providedCompile dans de base que la nouvelle déclarations sont ignorés dans c de l'interface et m-interface.

de base/construire.gradle:

configurations { providedCompile }

dependencies {
    providedCompile files('dependencies/compile/archive/management.jar')
}

sourceSets.main.compileClasspath += configurations.providedCompile
sourceSets.test.compileClasspath += configurations.providedCompile
sourceSets.test.runtimeClasspath += configurations.providedCompile

c-/l'interface de construire.gradle:

providedCompile files('dependencies/compile/archive/management.jar')

OriginalL'auteur Rich | 2013-04-19