如何解决Eclipse中创建Maven项目的ArchetypeManager空指针错误
Maven项目创建及偏好设置异常问题解决
问题描述
- 点击Maven项目时触发错误,Windows偏好设置中Maven界面显示异常(界面空白、控件加载失败)
- 创建Maven项目时抛出
NullPointerException,核心错误信息:
完整错误日志:java.lang.NullPointerException: Cannot invoke "org.eclipse.m2e.core.ui.internal.archetype.ArchetypePlugin.getActiveArchetypeCatalogs()" because "archetypeManager" is nulljava.lang.NullPointerException: Cannot invoke "org.eclipse.m2e.core.ui.internal.archetype.ArchetypePlugin.getActiveArchetypeCatalogs()" because "archetypeManager" is null at org.eclipse.m2e.core.ui.internal.wizards.MavenProjectWizardArchetypePage.createViewer(MavenProjectWizardArchetypePage.java:248) at org.eclipse.m2e.core.ui.internal.wizards.MavenProjectWizardArchetypePage.createControl(MavenProjectWizardArchetypePage.java:174) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:178) at org.eclipse.m2e.core.ui.internal.wizards.MavenProjectWizard.createPageControls(MavenProjectWizard.java:147) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744) at org.eclipse.jface.wizard.WizardDialog.setWizard(WizardDialog.java:1182) at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1235) at org.eclipse.jface.wizard.WizardDialog.lambda$3(WizardDialog.java:1223) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1223) at org.eclipse.ui.internal.dialogs.NewWizardSelectionPage.advanceToNextPageOrFinish(NewWizardSelectionPage.java:73) at org.eclipse.ui.internal.dialogs.NewWizardNewPage.lambda$0(NewWizardNewPage.java:342) at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:780) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174) at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:777) at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1542) at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1211) at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:272) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:329) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4251) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4068) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645) at org.eclipse.jface.window.Window.runEventLoop(Window.java:823) at org.eclipse.jface.window.Window.open(Window.java:799) at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:263) at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:283) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97) at jdk.internal.reflect.GeneratedMethodAccessor59.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:317) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:251) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213) at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:389) at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:142) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580) at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4251) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4068) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3645) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596) at org.eclipse.equinox.launcher.Main.run(Main.java:1467) - 同时触发未处理的事件循环异常,错误日志核心信息与上述一致。
解决方案
1. 修复M2E插件依赖
- 打开Eclipse,依次点击Help > Install New Software
- 在Work with输入框中填入M2E官方更新地址:
https://download.eclipse.org/m2e/releases/ - 勾选所有M2E相关组件,点击Next完成安装,重启Eclipse后验证问题
2. 清理M2E缓存配置
- 关闭Eclipse
- 找到Eclipse工作区目录下的
.metadata/.plugins/org.eclipse.m2e.core文件夹,删除该目录 - 重启Eclipse,M2E会自动重建配置文件
3. 重置Maven用户设置
- 打开Eclipse,依次点击Window > Preferences > Maven > User Settings
- 点击Restore Defaults恢复默认设置,再点击Update Settings更新配置
- 重启Eclipse后尝试创建Maven项目
4. 重装Eclipse及M2E插件
- 卸载当前Eclipse,删除残留的工作区和配置文件
- 下载最新版Eclipse IDE for Java Developers(内置M2E插件)
- 新建工作区,重新导入或创建Maven项目
内容的提问来源于stack exchange,提问作者ritu mansata
相关产品推荐
相关产品推荐

