2010-12-08 19 views
0

Ich erstelle zwei Projekte mit Maven.Maven Abhängigkeit Auflösung

Projekt1 und Projekt2.

Ich habe eine Abhängigkeit mit jar1.jar, um Project1.jar zu erstellen. Außerdem habe ich eine Abhängigkeit mit Project1.jar, um Project2.war zu erstellen. Ich biete "bereitgestellten" Bereich für Project1.jar Abhängigkeitseintrag in Project2. Außerdem gebe ich die Abhängigkeit "compile" für den Abhängigkeitseintrag jar1.jar in Project1.

Was ich bekomme, ist, dass das jar1.jar auch in Project2.war enthalten ist. Aber jar1.jar wird von der Umgebung bereitgestellt, in der Project2.war geladen wird.

+0

Ja, das ist richtig, denke ich. Grundsätzlich enthält Ihre Project1.jar die Abhängigkeit nicht darin. Im Grunde wird das auf pom.xml basierende jar mit dem in settings.xml angegebenen Repository zugeordnet. Also, Sie project2 ist abhängig von project1 und project1 ist abhängig von jar1. daher hängt project2 von jar1 ab. Sein transitives :-) –

+0

Danke für den Kommentar, Mohamed Saligh. Grundsätzlich ist meine Project1.jar eine ausführbare serverähnliche Anwendung und hat das jar1.jar in seiner Manifest. Dann denke ich, dass Project2.war, das vom Project1.jar Server läuft, jar1.jar nicht enthalten muss, richtig? Weil die Project1.jar-Anwendung jar1.jar im Klassenpfad (Manifest-Eintrag) hat. – girishadat

Antwort

0

Sie könnten ein paar Dinge tun.

Sie könnten den Umfang der jar1.jar als provided in pom.xml von Project1 machen. Abhängigkeiten mit dem Bereich provided sind im Kompilierungsklassenpfad enthalten.

Sie können jar1.jar explizit ausschließen, wenn Sie die Abhängigkeit für Project1 deklarieren.