2017-02-09 1 views
1

Ich beginne gerade mit Maven, in NetBeans. Und ich versuche, herauszufinden, warum ich die folgende Fehlermeldung zu erhalten, das Projekt auf den Aufbau (ein Java Web Application):Maven-bezogener Java-Erstellungsfehler: pom.xml fehlt

The POM for unknown.binary:hibernate-jpamodelgen-4.3.1.Final:jar:SNAPSHOT is missing, no dependency information available

Im folgenden Siebdruck, können Sie die Fehlermeldung sehen, aber Sie kann auch sehen, dass diese Abhängigkeit tatsächlich in pom.xml vorhanden ist und dass die relevante .jar-Datei tatsächlich im Ordner Abhängigkeiten vorhanden ist (alle relevanten Teile, die im Bildschirmdruck mit einer dünnen roten Linie markiert sind, und Sie können klicken (auf dem Bild, um es zu vergrößern):

EDIT: Im Siebdruck habe ich die falsche .jar-Datei im Ordner Abhängigkeiten rot markiert, es sollte die unmittelbar unter der sein, die ich falsch markiere d.

enter image description here

Also ich frage mich, was ich hier fehlt ...

EDIT: Im Siebdruck, markierte ich die falsche .jar-Datei in den Abhängigkeiten roten Ordner, es sollte derjenige sein, der unmittelbar unter dem liegt, den ich falsch markiert habe.

Antwort

2

Diese Abhängigkeit falsch aussieht

sind Sie, dass Glas in das Projekt kompilieren?

Ändern Sie es an:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-jpamodelgen</artifactId> 
    <version>5.2.6.Final</version> 
    <scope>provided</scope> 
</dependency> 

oder was auch immer Version (das ist die Version läuft in Ihrem Container, zum Beispiel tomcat)

+0

Ja, das scheint es behoben zu haben, danke! – Holland

0

Um laufen verwenden möchten, müssen Sie alle JAR-Dateien. Viele Abhängigkeiten benötigen auch zugehörige JAR-Dateien. Betrachten Sie das Ziel "Abhängigkeit: Baum". Es zeigt ALLE Abhängigkeiten für Ihr Projekt an, einschließlich derjenigen, die Sie als Abhängigkeiten deklariert haben. (Ich werde später darauf zurückkommen)

Wenn Sie eine Abhängigkeit einschließen, muss Maven wissen, ob diese Abhängigkeit Abhängigkeiten hat, so dass es auch in diesen Gläsern ziehen kann. Maven geht hinaus und holt die Gläser herein und speichert sie in Ihrem $ M2_HOME-Verzeichnis. Es enthält auch eine zugehörige Pom. Sie können dies auf Maven Repository https://mvnrepository.com/ finden. Diese Seite zeigt Ihnen auch, wie Sie Ihre Abhängigkeiten in Ihrem POM deklarieren. Wirklich gute Seite.

Gehen Sie in Ihr Home-Verzeichnis und suchen Sie nach ".m2" \ repository. Fahren Sie dann mit Ihrem Jar-Namen nach unten und führen Sie einen dir-Befehl aus. es wird das Glas und den dazugehörigen Pom zeigen. Dieser Pom wird für seine JAR-Dateiabhängigkeiten benötigt.

Wenn Sie eine Abhängigkeit: Tree-Ziel, wird es durch alle Poms, einschließlich derjenigen in den $ M2_HOME-Verzeichnissen durchsuchen und einen Baum mit allen Abhängigkeiten anzeigen. Ihr fehlt der Pom

Ich ging einfach auf Maven's Website und geben Sie Ihren Artefaktnamen. Hier ist die Pom-Abhängigkeit, die sie benutzt hat.

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-jpamodelgen --> 
     <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-jpamodelgen</artifactId> 
     <version>5.2.6.Final</version> 
    </dependency> 
+0

Oh. D-Unit zeigte bereits die Pom. – Dakoda

+0

Danke! Ja, ich habe die Antwort von D-Unit akzeptiert, aber Sie haben eine Verbesserung erhalten. Ihre Antwort hat mir eine Reihe von Dingen vermittelt, die mir nicht bewusst waren. – Holland