前段时间更新了Eclipse的maven插件,原来安装的是m2eclipse插件,后来更新成了m2e插件。结果在运行以前的maven工程时报错:
Referenced classpath provider does not exist: org.maven.ide.eclipse.launchconfig.classpathProvider
截图如下:
引起这个错误的原因主要是新的m2e插件的namespace已经修改了,而之前的工程的启动配置依然指向旧插件的名称。我们可以在Eclipse workspace下查看类的.launch文件,具体路径为:
\workspace\.metadata\.plugins\org.eclipse.debug.core\.launches
找到对应的类的.launch文件,使用文本编辑器打开后里面的内容应该类似如下:
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
实际上正确的配置应该是:
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
所以就能印证我们之前的猜测,maven插件的namespace从 org.maven.ide.eclipse 修改成了org.eclipse.m2e 从而导致了这个问题的产生。
对于这个问题,最简单的解决方案就是在IDE(Eclipse)里右键选中工程,然后选择 Configure -> Convert to Maven Project ,这样操作完以后,修复了损坏的launch configuration,启动就正常了。
Eclipse报错:Referenced classpath provider does not exist: org.maven.ide.eclipse……