2010-12-23 3 views
1

J'ai trois projets en ce moment qui forment une chaîne de dépendance, Project A dépend de Project B dépend de Project C.hors dépendance du projet commun

Dans Project B, j'essaie d'exclure le xml-apis jar qui pose des problèmes avec weblogic. Je le fais comme ça dans POM de Project B:

<dependency> 
    <groupId>com.company</groupId> 
    <artifactId>projectC</artifactId> 
    <version>1.0.3-SNAPSHOT</version> 
    <exclusions> 
     <exclusion> 
      <artifactId>xml-apis</artifactId> 
      <groupId>xml-apis</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 

Cependant, l'artefact xml-apis est toujours en cours inclus quand j'empaquette projet A. Quelle est la bonne façon d'exclure ce pot xml-apis? Dois-je trouver exactement quel paquet dans Project C apporte cela et le marquer comme prévu là? Pour l'instant, ma solution de contournement consiste simplement à lister la dépendance ci-dessus dans le POM de Project A.

EDIT:

Project A a une dépendance sur Project B et Project C. Depuis Project B a une dépendance sur Project C et Project B ne serait jamais utilisé sans Project C J'espérais ne pas avoir à inclure les informations de dépendance dans Project A et Project B.

Répondre

2

Le pom du projet B indique qu'il utilise le projet C, sauf qu'il (projet B) n'a pas besoin de xml-apis. Le pom du Projet A indique également qu'il utilise le Projet C, mais sans dire qu'il n'a pas besoin de xml-apis, par conséquent, Maven suppose qu'il en a besoin.

Vous pouvez soit ajouter la dépendance sur xml-apis au projet A avec une portée de fourni, ce qui signifie que oui vous en avez besoin mais vous allez vous assurer qu'une implémentation est disponible et que vous ne voulez pas que maven inclue eux, ou vous pourriez supprimer la dépendance du projet A sur le projet C.

0

Le projet B ne dépend pas de A. Insérez l'instruction excludes dans pom de b sur la dépendance C.

+0

Je l'ai fait. L'extrait ci-dessus provient de mon projet B. Voir mon EDIT. – Casey

+0

vient de remarquer que l'extrait POM avait le projet A là-bas. Fixé. – Casey

+0

@Casey vous semblez maintenant avoir un POM en disant que le projet B dépend du projetB –

0

La question n'est pas claire, peut-être claire mais confuse. Faites simplement mvn dependency:tree, vérifiez et excluez la dépendance dont vous avez besoin dans le pom correct, que ce soit A ou B ou C.

Questions connexes