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


    如题,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  

    解决办法:

    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>  

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

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




  • 相关阅读:
    剑指offer:二分查找找到旋转数组中的最小值
    强制索引
    剑指offer:青蛙跳台阶
    剑指offer:求和
    序列化和反序列化
    装饰器、生成器
    Python函数(一)
    【转】C# 中的委托和事件
    【读书笔记】备忘录模式翻译成C++了
    【学习笔记】Android 调试桥
  • 原文地址:https://www.cnblogs.com/jpfss/p/9077698.html
Copyright © 2020-2023  润新知