2010-12-08 22 views
0

Je crée deux projets avec Maven.Résolution de dépendance Maven

Project1 et Project2. J'ai une dépendance avec jar1.jar pour créer Project1.jar. De plus, j'ai une dépendance avec Project1.jar pour créer Project2.war. Je fournis la portée "fournie" pour l'entrée de dépendance Project1.jar dans Project2. En outre, je donne la dépendance de "compiler" de portée pour l'entrée de dépendance jar1.jar dans Project1. Ce que j'obtiens est, jar1.jar est également inclus dans le Project2.war. Mais jar1.jar est fourni par l'environnement dans lequel Project2.war est chargé.

+0

Oui, c'est vrai je pense. Fondamentalement, votre Project1.jar n'inclut pas la dépendance. Fondamentalement, il mappe le fichier jar basé sur pom.xml avec le référentiel spécifié dans le fichier settings.xml. Ainsi, vous project2 dépend de project1 et project1 dépend de jar1. donc project2 dépend de jar1. Son transitif :-) –

+0

Merci pour le commentaire, Mohamed Saligh. Fondamentalement mon Project1.jar est un serveur exécutable comme application et il a le jar1.jar dans son manifeste. Ensuite, je pense que le Project2.war fonctionnant à partir du serveur Project1.jar ne doit pas contenir jar1.jar, non? Parce que l'application Project1.jar a jar1.jar dans son classpath (entrée de manifeste). – girishadat

Répondre

0

Vous pourriez faire un certain nombre de choses.

Vous pouvez faire l'étendue de jar1.jar comme provided dans pom.xml de Project1. Les dépendances avec la portée provided sont incluses dans le chemin de classe de compilation.

Vous pouvez exclure explicitement jar1.jar lors de la déclaration de la dépendance pour Project1.