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.
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
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