2013-11-04 11 views
13

Ich habe einen internen Eclipse-Fehler für zwei Tage gekämpft. Ich führe die neueste Spring Tool Suite-Version von Eclipse und versuche, eine Sammlung existierender Maven-Projekte zu importieren. Wenn Sie dies tun, löst Eclipse eine NullPointerException aus, aber in der Fehlerprotokollansicht ist kein Stack-Trace verfügbar. Wenn ich Eclipse anwiese, das Maven-Projekt zu aktualisieren (Maven> Update Project), bekomme ich erneut eine NullPointerException. Dieses Mal berichtet die Fehlerprotokoll-Ansicht den folgenden Stack-Trace:Eclipse wirft NullPointerException während Maven update

java.lang.NullPointerException 
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.getProjectRelativePaths(VirtualResource.java:119) 
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingFiles(VirtualFile.java:104) 
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingResources(VirtualFile.java:93) 
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.exists(VirtualResource.java:88) 
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getNonBinaryComponentManifest(ManifestUtilities.java:124) 
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifest(ManifestUtilities.java:81) 
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifestClasspath(ManifestUtilities.java:147) 
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getManifestClasspath(J2EEModuleVirtualComponent.java:248) 
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.calculateManifestReferences(J2EEModuleVirtualComponent.java:368) 
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.cacheManifestReferences(J2EEModuleVirtualComponent.java:360) 
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:176) 
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:214) 
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:207) 
    at org.eclipse.m2e.wtp.WebProjectConfiguratorDelegate.configureClasspath(WebProjectConfiguratorDelegate.java:386) 
    at org.eclipse.m2e.wtp.WTPProjectConfigurator.configureClasspath(WTPProjectConfigurator.java:107) 
    at org.eclipse.m2e.jdt.internal.DefaultClasspathManagerDelegate.populateClasspath(DefaultClasspathManagerDelegate.java:61) 
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:253) 
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:363) 
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:343) 
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:371) 
    at org.eclipse.m2e.jdt.internal.BuildPathManager.updateClasspath(BuildPathManager.java:191) 
    at org.eclipse.m2e.jdt.internal.BuildPathManager.mavenProjectChanged(BuildPathManager.java:180) 
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.notifyProjectChangeListeners(ProjectRegistryManager.java:746) 
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.applyMutableProjectRegistry(ProjectRegistryManager.java:865) 
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:289) 
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:369) 
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:316) 
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:1) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:161) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:137) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:89) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1301) 
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:313) 
    at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:77) 
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

Hier ist, was ich versucht habe:

  • ich meinen Arbeitsplatz habe weggeblasen und erstellt einen neuen. Mehrmals.
  • Ich habe mein Maven-Repository weggeblasen, damit es neu erstellt wird.
  • Ich habe Spring Tool Suite neu installiert.
  • Ich habe versucht, Eclipse zu bitten, die Maven-Repositories zu aktualisieren.
  • Ich habe auf Zusammenführungskonflikte in meinem lokalen SVN-Repository überprüft. (Es gibt keine; dies ist ein brandneuer Zweig aus Stamm, der frisch ausgecheckt ist.)
  • Ich habe die Synchronize-Ansicht in Eclipse überprüft, um festzustellen, ob es irgendwelche Unterschiede feststellt. (Eclipse kann nicht weit genug gehen, um irgendwelche Projekte zur Synchronisation zu erkennen.)
  • Ich habe Google nach NullPointerExceptions in VirtualResource.getProjectRelativePaths() gesucht. Ich habe NullPointerExceptions in anderen sehr ähnlichen Orten gefunden, und ich habe die Empfehlungen für sie ausprobiert, nur für den Teufel, aber keiner von ihnen funktioniert.

Ich bin bei meinem Ende mit diesem Problem. Hilf mir, Obi-Wan Kenobi, du bist meine einzige Hoffnung.

+1

Haben die Projekte bereits Eclipse '.project' und' .classpath' Dateien? Können Sie die Koordinaten- und Parent-Abschnitte der POMs posten? (In jedem Fall ist dies ein M2E-Fehler und sollte als solcher abgelegt werden.) – chrylis

+0

Immer wenn ich dies in Eclipse (für Java EE) sehe, liegt das daran, dass ich M2E anstelle von [M2E-WTP] installiert habe (http: // /www.eclipse.org/m2e-wtp/). Du siehst das in Juno. Ich schätze, Sie sind noch nicht auf Kepler, da es Maven Support eingebaut hat. – McDowell

Antwort

2

Wie echinelli anzeigte, stellte sich heraus, dass dies ein Eclipse (oder STS) Bug war, aber die Installation der neuesten Version stellt nicht die Lösung dar. Ich hatte STS basierend auf Eclipse 4.x installiert; als ich das deinstallierte und zur 3.x Version ging, ging das Problem weg.

5

Ich bin sicher, dass das Problem nicht mit dem Maven-Plugin zusammenhängt; aber wenn es ist, ich war herumwandern, wenn Sie eine mvn eclipse:eclipse vor dem Importieren des Projekts in Eclipse laufen, wenn Sie das tun, und Sie Maven 3 verwenden, hatte ich überprüft, dass Maven Plugin Maven 3 noch nicht ordnungsgemäß unterstützt; so ermutige ich Sie, eine mvn eclipse:clean zu machen, dann importieren Sie das Projekt als ein bestehendes Projekt, und danach aktivieren Sie die Maven Plugin Natur aus Eclipse. Ich hoffe es hilft,

PS. es scheint ein Know Eclipse-Bug (https://www.google.com.uy/search?q=j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java&oq=j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java&aqs=chrome..69i57.128j0j7&sourceid=chrome&espv=210&es_sm=91&ie=UTF-8) zu sein, versuchen Sie das Herunterladen der letzten Eclipse-Version;. Ich kepler bei der Arbeit bin mit, und ich bin in Maven/Frühjahr Projekten arbeiten und es funktioniert gut

Viel Glück

4

Das ist, was ich tat, es zu beheben:

  1. das Projekt aus dem
  2. Arbeitsplatz entfernt .classpath entfernen, .project und .settings Ordner
  3. Reimport das Projekt
2

Dies geschieht, weil Ihre m2e Plugins sind beschädigt. Befolgen Sie zur Beseitigung die folgenden Schritte.

  1. schließen eclipse
  2. Gehen Sie zu Ihrem Eclipse-Workspace-Ordner unter .metadata/pluigns Ordner identifizieren alle M2e Plugins
  3. löschen
  4. die entsprechenden Plugins aus nicht beschädigten Arbeitsbereich kopieren, entweder von Ihre Maschine oder von einem der Teammitglieder Maschine
  5. Neustart
0

Ok eclipse, hatte ich die s ein Problem mit einem obskuren Grund.

benutzte ich pluginExecution für aspectj-maven-plugin und über den Verlauf noch ein weiteres Maven Frage der versucht, bemerkte ich <action><execute><execute></action> hatte zu beheben aus

Dies führt zur nullpointerexception.