eclipse pom.xml 报错org.apache.maven.plugin.war.WarMojo的解决办法

时间:2024-04-30 20:16:38

如题,maven项目eclipse提示pom.ml有错,提示信息就是org.apache.maven.plugin.war.WarMojo。

然后执行 maven install 出现如下错误提示

  1. [INFO] --- maven-war-plugin:2.2:war (default-war) @ ams-web ---
  2. [WARNING] Error injecting: org.apache.maven.plugin.war.WarMojo
  3. java.lang.TypeNotPresentException: Type org.apache.maven.plugin.war.WarMojo not present
  4. at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:111)
  5. at org.eclipse.sisu.space.NamedClass.load(NamedClass.java:46)
  6. at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
  7. at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
  8. at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:54)
  9. at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
  10. at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:113)
  11. at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176)
  12. at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:122)
  13. at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
  14. at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
  15. at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:46)
  16. at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1009)
  17. at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1059)
  18. at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1005)
  19. at com.google.inject.Scopes$1$1.get(Scopes.java:59)
  20. at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
  21. at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
  22. at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)
  23. at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
  24. at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:464)
  25. at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:119)
  26. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
  27. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
  28. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
  29. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
  30. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
  31. at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
  32. at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
  33. at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
  34. at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
  35. at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
  36. at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
  37. at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
  38. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  39. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  40. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  41. at java.lang.reflect.Method.invoke(Method.java:483)
  42. at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
  43. at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
  44. at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
  45. at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
  46. Caused by: java.lang.ClassNotFoundException: org.apache.maven.plugin.war.WarMojo
  47. at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
  48. at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
  49. at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
  50. at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
  51. at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:107)
  52. ... 41 more
[INFO] --- maven-war-plugin:2.2:war (default-war) @ ams-web ---
[WARNING] Error injecting: org.apache.maven.plugin.war.WarMojo
java.lang.TypeNotPresentException: Type org.apache.maven.plugin.war.WarMojo not present
at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:111)
at org.eclipse.sisu.space.NamedClass.load(NamedClass.java:46)
at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:54)
at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:113)
at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:122)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:46)
at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1009)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1059)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1005)
at com.google.inject.Scopes$1$1.get(Scopes.java:59)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:464)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:119)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.ClassNotFoundException: org.apache.maven.plugin.war.WarMojo
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:107)
... 41 more

解决办法:

pom.xml中增加插件

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-war-plugin</artifactId>
  4. <version>3.0.0</version>
  5. </plugin>
                <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>

原本是没有设置这个插件,maven 应该自动使用了2.2版本的,换成3.0.0后,不在报这个错。为什么是3.0.0,我找了下我的本地仓库,有这个版本的,所以就没有尝试其他版本了。

猜测:这个项目以前是没有这个错误的,我更换本地的开发环境后,才出现的,以前是 JDK7 + myeclipse2014,后来我换成了JDK8 + eclipse 4.4了,IDE里面都是自己下载的同一个maven 3.2.5,所以我觉得应该是JDK版本和maven插件冲突了