Maven构建Eclipse时出现NoClassDefFoundError org.eclipse.m2e.wtp.WTPProjectsUtil

时间:2013-08-08 10:05:59

标签: eclipse websphere eclipse-wtp

我已经在STS 3.3.0(Juno 3.8.2版本)以及m2e wtp连接器中安装了Websphere Development工具。我现在遇到了在Maven中构建的问题。使用maven更新项目时出现以下异常。

java.lang.NoClassDefFoundError: org.eclipse.m2e.wtp.WTPProjectsUtil
at com.ibm.etools.maven.javaee.core.configurators.Utils.isJPAProject(Utils.java:43)
at com.ibm.etools.maven.javaee.core.configurators.JPAProjectConfiguratorDelegate.configureProject(JPAProjectConfiguratorDelegate.java:46)
at com.ibm.etools.maven.javaee.core.configurators.JPAProjectConfigurator.configure(JPAProjectConfigurator.java:45)
at org.eclipse.m2e.core.project.configurator.AbstractLifecycleMapping.configure(AbstractLifecycleMapping.java:109)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$3.call(ProjectConfigurationManager.java:472)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$3.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.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:465)
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:403)
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:54)

但是当我查看插件目录时,我可以看到包含相关类的jar文件org.eclipse.m2e.wtp_1.0.0.20130613-0136.jar。我如何计算eclipse类路径是什么,有没有办法将这个库添加到类路径?

3 个答案:

答案 0 :(得分:1)

此答案是临时修复/黑客。


自WDT升级以来,我遇到同样的问题:

  • “Web开发工具”版本8.5.1002.v20130402_2058
  • “m2e-wtp”版本1.0.0.20130613-0136
对于插件依赖项

根本原因Versioning rules

解决方案

打开文件eclipse\plugins\com.ibm.etools.maven.javaee.core_1.0.0.v20121205_2240.jar 修改META-INF\MANIFEST.MF

Require-Bundle部分的更改

org.eclipse.m2e.wtp;bundle-version="[0.16.0,1.0.0)"

通过

org.eclipse.m2e.wtp;bundle-version="[0.16.0,2.0.0)"

或类似大于1.0.0.xx的内容......且列中没有更改字符数

使用-clean选项保存文件,jar并重启Eclipse。


m2e v1.0.0和wdt 8.5.1(非002)工作正常,但 com.ibm.etools.maven.javaee.core-xx.jar 不在此版本中..所以唯一可持续的解决方案是WDT更新(依赖范围升级),也许是在v8.5.1003中。

答案 1 :(得分:1)

事实证明我使用的是错误版本的Juno,应该使用Juno 4.2。一旦与Websphere 8.5.5插件一起安装,我只需要将m2e WTP插件更新到最新的1.x.x插件。

答案 2 :(得分:0)

我花了很长时间才弄明白这个问题。我解决这个问题的方法是,我卸载了maven juno集成插件并安装了另一个maven插件(m2e-wtp),这样就完成了这个技巧,我回到了我的eclipse工作区,没有任何问题。希望这会有所帮助。