Mein Problem ist, dass Eclipse keine Abhängigkeiten meines Projekts lösen kann. Dies führt zu Problemen, denn obwohl die Abhängigkeiten beim Codieren gut zu funktionieren scheinen (ich erhalte die automatische Vervollständigung), bekomme ich immer noch eine riesige Liste von Fehlern, die sich auf fehlende Artefakte beziehen.
Beim Filtern habe ich Folgendes gefunden:
Der Container 'Maven Dependencies' referenziert nicht vorhandene Bibliothek '/home/[..(//m2/repository/com/Sun/tools/1.5.0/tools-1.5.0.jar')
Es scheint, dass diese Abhängigkeit von struts2 eingeführt wurde, die in ihrem pom ein Profil wie folgt eingerichtet haben:
<dependency>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${Java.home}/../lib/tools.jar</systemPath>
</dependency>
Dieser Systempfad wird aufgelöst und daher sehe ich keinen Grund, warum dies Probleme verursachen würde. Gibt es in jedem Fall eine Möglichkeit, Eclipse mitzuteilen, dass diese m2Eclipse-Abhängigkeit eine Systemabhängigkeit ist, die nicht im lokalen Repository gefunden wird?
Ich hatte das gleiche Problem und musste die folgenden Dinge tun
Es hat für mich nahtlos funktioniert.
Es lohnt sich hinzuzufügen, dass ich in meiner Eclipse.ini
-Datei die Zeilen -vm ... am Anfang der Datei einfügen musste. mögen
-vm
C:\Program Files\Java\jdk1.6.0_27\bin
... ... ...
Stellen Sie sicher, dass die Option -vm vor -vmargs platziert ist, da alles, nachdem -vmargs direkt an vm übergeben wurde, ausgewählt wird.
Ich hatte dieses Problem, aber ich habe es mit den folgenden Schritten behoben:
Fall 1:
Eclipse zeigt standardmäßig auf JRE, aber für das Eclipse-Maven-Plugin ist JDK erforderlich
Fenster -> Voreinstellungen -> Java -> Installierte JREs
Ändern Sie es in JDK
Folgen Sie den Schritten, um von JRE zu JDK zu wechseln
Jetzt kann ich mein Projekt ohne Probleme erstellen. Ist dies der richtige Weg, um dieses Problem zu lösen?
schließt Werkzeuge von der Strebenabhängigkeit aus.
<exclusions>
<exclusion>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
</exclusion>
</exclusions>
Ich hatte das gleiche Problem - Eclipse konnte keine tools.jar finden. Wie ich herausfand, war der Grund, dass Eclipse eine JRE und keine JDK verwendete. Sie müssen der Eclipse.ini einen Parameter -vm hinzufügen, der auf Ihr binäres JDK-Verzeichnis verweist:
...
- vm
Pfad_zu_jdk\bin
...
Dies sollte das Problem beheben.
Laden Sie http://repository.ops4j.org/maven2/tools/tools/1.5.0/ Herunter und legen Sie das Glas in den C:\Documents and Settings\Administrador\.m2\repository\com\Sun\tools\1.5.0
. Viel Glück.
Sie müssen sicherstellen, dass Eclipse mithilfe von JDK-Installationen ist.
In Eclipse IDE gehen Sie zu Window
/Preferences
/Java
/Installed JREs
Auf eine JDK-Installation.
Zum Beispiel: C:\Program Files (x86)\Java\jdk1.6.0_37
Ich habe das gelesen und verschiedene Dinge ausprobiert. Was für mich funktionierte, war folgendes: Ich änderte die Fenster -> Einstellungen -> Java -> installierte JREs, um stattdessen auf das JDK zu zeigen. Das hat dieses Problem gelöst.
<dependency>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>${env.Java_HOME}/lib/tools.jar</systemPath>
</dependency>
Fügen Sie einfach das hinzu. Es wird klappen.
So seltsam das auch klingen mag, ich habe dieses Problem gelöst, indem ich mich einfach mit dem SVN-Repository neu synchronisierte.
Die Sache ist, ich habe den gesamten Arbeitsbereich von einem anderen PC übernommen. Wenn ich also das Maven-Projekt mit dem m2e-Plugin importierte, synchronisierten sich einige Abhängigkeiten möglicherweise nicht richtig.
Ich poste dies nur für den Fall, dass jemand mit diesem Fehler verzweifelt ist und alle Möglichkeiten ausprobiert.
Ich hatte auch ein ähnliches Problem und behebte es folgendermaßen. Gehen Sie in der Eingabeaufforderung zum lib-Verzeichnis des installierten JDK-Pfads. Führen Sie den folgenden Befehl aus, um die Installation von tools.jar zu installieren.
$mvn install:install-file -DgroupId=Sun.jdk -DartifactId=tools \
-Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar
In jedem Projekt, das Sie in Eclipse importieren, erstellt Eclipse einige Dateien im Dateisystem - .project, .classpath, einen Ordner. Es scheint, dass Eclipse diese nicht korrekt aktualisiert.
Löschen Sie diese und importieren Sie sie erneut.
Offensichtlich funktioniert diese Problemumgehung nicht, wenn dies Ihr erster Import ist und Sie bereits Probleme haben. Dann schau hier nach Maven2: Artefakt fehlt, aber Gläser sind vorhanden
Diese Abhängigkeit sollte wie erwartet funktionieren. Probieren Sie im Zweifelsfall die Befehlszeilenversion von Maven aus, da das Eclipse-Plugin in Bezug auf die Abhängigkeitsauflösung sehr spröde ist.
Im Gegensatz zu anderen Teilen von Eclipse ist es nicht möglich, auch nur einen teilweisen Klassenpfad für das Build zu erstellen, wenn mit dem POM etwas nicht stimmt. Der Fehler könnte also etwas anderes sein.
Wenn alles andere fehlschlägt, versuchen Sie die Datei in Ihrem lokalen Repository zu installieren, damit Sie den nächsten Fehler sehen können.
[1] Um herauszufinden, wo sich Ihr VM befindet, geben Sie Folgendes ein: /Usr/libexec/Java_home
[2] vi ./Eclipse.app/Contents/MacOS/Eclipse.ini
[3]
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/
-vmargs ........ ........
[4] In Eclipse Update Maven
[5] sing alles ist gut :-)
Ich fand schließlich heraus, was es verursachte. Anscheinend ist es ein Fehler in m2Eclipse, wenn Sie maven1-Repositorys verwenden. Ich hatte immer noch das Java.net maven1-Repository in meinem Pom; nach dem deaktivieren funktioniert alles wieder. Ein sehr ärgerliches Problem zu finden, weil es am Ende nichts mit dem Finden des Werkzeugbehälters zu tun hatte.
Dieses Problem aufgrund einer falschen Java-Konfiguration. Jedes IDE benötigte ein vollständiges JDK-Paket. becuase tools.jar verfügbar in JDK lib nicht jre lib
wechseln Sie zu Control Panel, um die Umgebungspfadvariable in C:\Programme\Java\jdk1.8.0_31\jre\bin zu ändern.
Ändern Sie Java_HOME in C:\Programme\Java\jdk1.8.0_31.
Öffnen Sie IDE (Eclipse oder STS), und ändern Sie die JRE-Systembibliothek in C:\Programme\Java\jdk1.8.0_31
starten Sie dann die IDE neu. es wird klappen
Ich hatte das gleiche Problem mehrmals und konnte es mit zwei Schritten beheben:
Ich konnte den Vorgang mehrmals erfolgreich wiederholen.
Eine elegantere Lösung (ich hatte bisher noch nicht die Möglichkeit, es auszuprobieren), könnte die unter https://stackoverflow.com/a/16444984 genannten m2Eclipse-Caches löschen.
Ich hoffe, das hilft jedem.
Eine hackige Lösung, die für mich funktioniert hat:
Wenn m2e sich darüber beklagt, dass das folgende jar nicht im Maven-Cache gefunden wird (den fehlerhaften Pfad finden Sie im Fehlerprotokoll der POM-Datei oder in der Liste "Java Build Path> Maven Dependencies"):
${HOME}/.m2/repository/jdk/tools/jdk.tools/1.6/jdk.tools-1.6.pom
probieren Sie dann den folgenden Befehl aus (geben Sie Java_VERSION_HERE
für ein installiertes JDK ein, z. B. jdk1.8.0_191-AMD64. Verwenden Sie dann die beiden Pfadabschnitte nach .m2/repository/
oben, um die korrekte groupId
zu ermitteln, und ersetzen Sie 1.6
durch die Version, die m2e darüber beschwert Möglicherweise ist es nicht wichtig, ob das installierte JDK der Version entspricht, über die sich m2e beschwert.):
mvn install:install-file -Dfile=/usr/Java/JAVA_VERSION_HERE/lib/tools.jar \
-DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6
Mit diesem Befehl wird tools.jar
aus Ihrem JDK kopiert und in den Maven-Cache gestellt. Außerdem wird eine pom.xml
-Datei erstellt, die von Maven verwendet werden kann.