wake-up-neo.com

Wie füge ich die "Maven Managed Dependencies" -Bibliothek in der Buildpfad-Eclipse hinzu?

Ich habe ein Maven-Projekt erstellt und möchte alle Maven-Abhängigkeiten im Erstellungspfad des Projekts in Eclipse hinzufügen. Wenn ich im Eigenschaftsdialogfeld des Projekts unter Java-Build-Pfad> Bibliothek hinzufügen> Maven-verwaltete Abhängigkeit> Weiter gehe, werden Sie aufgefordert, die "Maven-Projekteinstellung" zum Konfigurieren der Maven-Abhängigkeitsauflösung zu verwenden.

Meine Frage ist, wie man Maven-Abhängigkeiten im aktuellen Build-Pfad hinzufügt.

60
Amit Patel

von der Befehlszeile aus:

mvn Eclipse:eclipse

dadurch werden alle Abhängigkeiten, die Sie in Ihrer pom.xml haben, in Eclipse eingefügt ...

wenn Sie dies jedoch noch nicht getan haben, müssen Sie möglicherweise einen weiteren Schritt ausführen.

Schließen Sie Eclipse und führen Sie dann den folgenden Befehl in der Shell aus:

mvn -Declipse.workspace=<Eclipse workspace> Eclipse:add-maven-repo

probe:

mvn -Declipse.workspace=/home/ft/workspaces/wksp1/ Eclipse:add-maven-repo
46
ftravers

Wenn Sie m2e installiert haben und das Projekt bereits ein Maven-Projekt ist, aber die Maven-Abhängigkeiten noch fehlen, war der einfachste Weg, der für mich funktioniert hat

  • klicken Sie mit der rechten Maustaste auf das Projekt.
  • Maven,
  • Projekt aktualisieren ...

Eclipse screenshot

33
schnatterer

Ich habe das gleiche Problem mit SpringSource Tool Suite. Ich importierte ein vorhandenes Maven-Projekt, das problemlos von der Befehlszeile aus lief. Wenn ich jedoch das Projekt mit dem Import -> Maven -> vorhandenen Maven - Projekt importierte, wurde das Projekt nicht korrekt importiert, und ich konnte die von Maven verwaltete Abhängigkeitsbibliothek nicht zum Erstellungspfad hinzufügen.

Wenn ich mvn install von der Befehlszeile aus ausführte, wurde das Projekt erfolgreich erstellt. Wenn ich mvn Eclipse: eclipse ausgeführt habe und dann in STS importiert habe, funktionierte alles wie erwartet, außer natürlich würde ich dies jedes Mal erneut ausführen müssen, wenn ich das pom aktualisiere, was unerwünscht war.

Ich habe das Problem gelöst, indem ich mvn Eclipse:eclipse ausgeführt habe und dann .classpath manuell aktualisiert habe, um die von Eclipse:eclipse hinzugefügten M2_REPO-Abhängigkeiten zu entfernen und den m2Eclipse-Abhängigkeitseintrag hinzuzufügen:

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  <attributes>
    <attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  </attributes>
</classpathentry>

Dann importierte ich das vorhandene Maven-Projekt und es funktionierte wie erwartet.

Dies ist ein Hack und ich bin nicht sicher, welche weiteren Konsequenzen es hat, wenn Eclipse:ecplise mit m2Eclipse arbeitet. Aber es erlaubte mir zumindest, mein Projekt zusammenzustellen, damit ich mit dem Programmieren beginnen konnte.


EDIT 1/4/2013

Die oben beschriebene Problemumgehung wird vorübergehend funktionieren, und ich habe nie negative Nebenwirkungen festgestellt. Ich hatte dieses Problem jedoch schon ein paar Mal, und jedes Mal besteht das Problem darin, dass es einen Abschnitt des Pom gibt, der von maven akzeptiert wird, aber m2Eclipse barfs auf.

Ich empfehle daher, Teile des Pom 1 1 zu entfernen, bis Sie das Projekt erfolgreich umsetzen können. Führen Sie einfach maven -> update configuration nach jedem pom-edit aus, bis es ordnungsgemäß funktioniert. Normalerweise entferne ich die Plug-In-Konfigurations-Tag-Blöcke nacheinander, beginnend mit den verdächtigsten (d. H. Den kompliziertesten).

Sobald es richtig funktioniert, können Sie den Pom zurücksetzen, und es sollte trotzdem wie erwartet funktionieren.

Nachdem ich gestartet bin, würde ich die fehlerhaften Konfigurationen recherchieren, um herauszufinden, was die "richtige" Lösung ist (jedenfalls nach m2Eclipse).

Hoffentlich führt dieser Ansatz zu einer dauerhaften Lösung, anstatt sich mit einem hacky Workaround zufrieden zu geben!

11
Marquee

Stellen Sie sicher, dass Ihre in Ihrer pom.xml definierte Verpackungsstrategie nicht "pom" ist. Es sollte "Glas" oder etwas anderes sein. Sobald Sie das getan haben, klicken Sie mit der rechten Maustaste darauf und gehen Sie zu Maven -> Update Project ...

10
Pedro Madrid
  • Installieren Sie das M2E-Plugin.
  • Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Konfigurieren -> In Maven-Projekt konvertieren.

enter image description here

  • Dann wird eine pom.xml-Datei in Ihrem Projekt angezeigt. Doppelklicken Sie auf die Datei pom.xml und wählen Sie die Registerkarte Abhängigkeit aus, um die Jars hinzuzufügen, von denen Ihr Projekt abhängig ist.
7
smwikipedia

Sie können M2Eclipse installieren und das Projekt als Maven-Projekt in Eclipse öffnen. Es werden die erforderlichen Konfigurationen und Einträge erstellt. 

Dies ist auch für spätere Aktualisierungen des Pom nützlich. Mit dem maven Eclipse-Plugin müssen Sie die Eclipse-Konfiguration für jede Änderung manuell neu erstellen. 

6
Raghuram

Wenn Maven-> Update Project für Sie nicht funktioniert? Dies sind die Schritte, die ich religiös befolge Das Projekt aus Eclipse entfernen (nicht aus dem Arbeitsbereich löschen) Schließen Sie Eclipse Gehen Sie zu Befehlszeile und führen Sie diese Befehle aus.

mvn Eclipse:clean
mvn Eclipse:eclipse -Dwtpversion=2.0

Öffnen Sie Eclipse Importieren Sie ein vorhandenes Maven-Projekt . Sie sehen die Maven-Abhängigkeit in unserem Projekt.

Hoffe das klappt.

2
Sabarish

Ich könnte das Problem herausfinden. Ich habe beim Start von Eclipse folgende Warnung erhalten.

The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDk.

Please make sure the -vm option in Eclipse.ini is pointing to a JDK and verify that
Installed JRE's are also using JDK installs

Ich habe die Datei Eclipse.ini geändert und Eclipse folgend hinzugefügt und neu gestartet

-vm
C:/Program Files/Java/jdk1.6.0_21/bin/javaw.exe

Jetzt kann ich die "Maven Dependency" -Bibliothek sehen, die automatisch im Java-Erstellungspfad enthalten ist.

2
Amit Patel

Folge diesen Schritten

1) Gehen Sie in den Klassenpfad von Projekten 

2) Gehen Sie in die Bibliotheksregisterkarte

3) Klicken Sie auf Bibliothek hinzufügen

4) Wählen Sie im geöffneten Dialog die von Maven verwalteten Abhängigkeiten aus

5) Klicken Sie auf Weiter

6) Klicken Sie im neuen Dialog auf Projekteinstellungen verwalten

7) Aktivieren Sie im geöffneten Dialog das Kontrollkästchen Abhängigkeiten aus dem Arbeitsbereich lösen

8) Klicken Sie auf Standard wiederherstellen

9) Es wird einige Prozesse ausführen und Sie haben jetzt alle Ihre Abhängigkeiten in Ihrer Bibliothek.

1
raj

Wenn Sie ein Eclipse-Plugin für Ihre Maven-Aufgaben verwenden (es gibt zwei davon: M2ecipse von sonatype "offiziell" und q4e in Google Code), gibt es Optionen in den Kontextmenüs (Rechtsklick auf das Projekt) das schmerzlos.

Sie können beide Plugins gleichzeitig in Ihrer Eclipse-Workbench ausführen und sie auf Projektbasis gleichgültig verwenden.

0
Alain Pannetier

Versuchen Sie: Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Maven -> Abhängigkeitsverwaltung deaktivieren.

0
ChangePicture

Sie könnten auch ein Maven-Abhängigkeits-Plugin für Ihr Pom in Betracht ziehen:

<plugins>
... 
    <plugin> 
        <artifactId>maven-dependency-plugin</artifactId> 
            <executions> 
                <execution> 
                    <phase>process-resources</phase> 
                    <goals> 
                        <goal>copy-dependencies</goal> 
                    </goals> 
                    <configuration>   
                        <outputDirectory>${project.build.directory}/lib</outputDirectory> 
                    </configuration> 
                </execution> 
            </executions> 
    </plugin> 
...
</plugins>

Dann können Sie "mvn package" ausführen, und maven kopiert alle erforderlichen Abhängigkeiten in Ihr_Projektpfad/target/Ihr_Projektname/WEB-INF/lib /. Von dort aus können Sie sie in Ihr Projekt-/Bibliotheksverzeichnis kopieren und als externe Jars hinzufügen (Projektpfad für Projekteinstellungen konfigurieren).

0
Picrochole

Wenn Sie die Maven-Abhängigkeit aus Versehen aus der Bibliothek entfernt haben. Fügen Sie unten in pom.xml hinzu

<build>     
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
</build>
0
Guest