Uploaded image for project: 'Maven Plugin Tools'
  1. Maven Plugin Tools
  2. MPLUGIN-296

java.lang.ClassNotFoundException: org.apache.maven.plugins.annotations.Execute

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.4
    • Fix Version/s: 3.5
    • Component/s: Plugin Plugin
    • Labels:
      None
    • Environment:
      Apache Maven 3.4.0-SNAPSHOT (7a009b7caf970730ea37641be7a315a71bb68f09; 2016-02-05T19:32:21+01:00)
      Java version: 1.8.0_45, vendor: Oracle Corporation
      Java home: /usr/local/jdk-1.8.0/jre
      Default locale: en_DE, platform encoding: UTF-8

      Description

      maven-plugin-plugin direct dependency in pom.xml on 'maven-plugin-annotations' must not use scope 'provided': it is used by this precise plugin to extract annotations from code being built (which is code for another plugin...).

      The scope of the annotations for general plugins using them can use 'provided': annotations are @Retention(value=CLASS), which means they are not used at runtime (which is a rare case where this "provided" scope does not mean that the dependency is provided, but not used).

      If it worked until now, that's because of a subtle bug in plugins resolution algorithm that made unexpected resolution result, ignoring this provided-scoped dependency (a transitive dependency without this provided scope was selected): with MRESOLVER-8/MNG-6135 algorithm bugfix, what was magically working previously is now logically failing with following stacktrace:

      [INFO] --- maven-plugin-plugin:3.4:descriptor (default-descriptor) @ mng-5783-plugin-dependency-filtering-plugin ---
      [WARNING] Using platform encoding (UTF-8 actually) to read mojo metadata, i.e. build is platform dependent!
      [INFO] Mojo extractor with id: java-javadoc found 1 mojo descriptors.
      [WARNING] Error injecting: org.apache.maven.tools.plugin.extractor.annotations.JavaAnnotationsMojoDescriptorExtractor
      java.lang.NoClassDefFoundError: org/apache/maven/plugins/annotations/Execute
      	at java.lang.ClassLoader.defineClass1(Native Method)
      	at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
      	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
      	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
      	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
      	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
      	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
      	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
      	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 java.lang.Class.getDeclaredMethods0(Native Method)
      	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
      	at java.lang.Class.getDeclaredMethods(Class.java:1975)
      	at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:688)
      	at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:380)
      	at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:164)
      	at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:613)
      	at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:569)
      	at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:555)
      	at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:884)
      	at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805)
      	at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282)
      	at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214)
      	at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1006)
      	at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1038)
      	at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1001)
      	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
      	at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
      	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
      	at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
      	at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:65)
      	at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
      	at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176)
      	at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
      	at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
      	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63)
      	at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
      	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
      	at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
      	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
      	at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81)
      	at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
      	at java.util.AbstractMap.get(AbstractMap.java:187)
      	at org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor(DefaultMojoScanner.java:87)
      	at org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute(AbstractGeneratorMojo.java:245)
      	at org.apache.maven.plugin.plugin.DescriptorGeneratorMojo.execute(DescriptorGeneratorMojo.java:90)
      	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:155)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:147)
      	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:128)
      	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
      	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
      	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
      	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:865)
      	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
      	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
      	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:497)
      	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.plugins.annotations.Execute
      	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)
      	... 77 more
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                schulte77 Christian Schulte
                Reporter:
                schulte77 Christian Schulte
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: