Ich habe ein Maven-Projekt, das ich mit einigen meiner anderen Projekte teilen möchte. Es hat einige benutzerdefinierte Code und dann ein paar Abhängigkeiten auf Dinge wie log4j, jasypt, etc.Maven - auf lokalen Repo installiert, keine transitiven Abhängigkeiten erhalten
Ich baue es und installieren Sie es in meinem lokalen Maven Repo. Ich kann sehen, dass es dort erfolgreich platziert wurde. Mit Blick auf .m2/repository/derp/Foo/1.0 hat es ein .pom mit all seinen Abhängigkeiten definiert.
Ich kann es auch als eine Abhängigkeit in meinen Projekten auf höherer Ebene definieren, und es kompiliert.
<dependency>
<groupId>my.group</groupId>
<artifactId>Foo</artifactId>
<version>1.0</version>
</dependency>
kann ich das Glas in meiner 'Maven Abhängigkeiten' in Finsternis sehen, und das Gefäß erweitert ich sehe es die richtige pom mit Abhängigkeiten in META-INF/Maven/derp/Foo/pom.xml hat.
Aber mein Top-Level-Projekt über Foo bekommt nicht die Abhängigkeiten, die Foo braucht. Ich bekomme Laufzeitausnahmen, und ich kann keine der transitiven Abhängigkeitsgläser in meinen Abhängigkeiten in Eclipse sehen.
Was muss ich tun, um sicherzustellen, dass Maven das Pom for Foo in meinem lokalen Repository sieht, damit es alle transitiven Abhängigkeiten erhält, die es benötigt?
----- ----- bearbeiten
Antwort unten zu äußern, werden sie wie folgt definiert, mit der Abhängigkeiten Tag auf der obersten Ebene im Rahmen des Projekts Tag.
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.2</version>
</dependency>
etc ...
Dies sind die Gläser, die richtig maven findet, wenn ich gerade bin den Aufbau und dieses Foo Projekt ausgeführt wird, aber Maven nicht enthalten diese Gläser, wenn ein Projekt auf Foo abhängt, (Bar), und ich finde es heraus, wenn ich versuche, Bar zu führen.
können Sie teilen, wie Abhängigkeiten in Foo pom definiert sind? Sind sie in einer Abhängigkeitsverwaltung? im Bereich Abhängigkeiten, in welchem Bereich sind sie? –
Enthalten in meinem Beitrag bearbeiten, um Ihren Kommentar zu beantworten. Meine Lösung für jetzt ist, ein "schattiertes" Foo-Glas zu machen, das alle Gläser enthält, die nicht in das Projekt über Foo aufgenommen werden. – medloh