[ http://jira.codehaus.org/browse/MNG-2118?page=all ]
John Casey updated MNG-2118: ---------------------------- Fix Version: 2.1 > Listing central repo in pluginRepositories confuses Maven > --------------------------------------------------------- > > Key: MNG-2118 > URL: http://jira.codehaus.org/browse/MNG-2118 > Project: Maven 2 > Type: Bug > Components: POM, Plugins and Lifecycle > Versions: 2.0.2 > Reporter: Jason Dillon > Priority: Critical > Fix For: 2.1 > > > It appears that if you list the central repository in the pluginRepositories, > that it may cause Maven to incorrectly check the central repository for > plugin data. > Specifically, I found this when using the maven-clean-plugin 2.1. I did not > have this plugin in my local repository, and when running {{mvn clean}} it > causes the build to fail: > {noformat} > + Error stacktraces are turned on. > [DEBUG] Building Maven user-level plugin registry from: > '/Users/jason/.m2/plugin-registry.xml' > [DEBUG] Building Maven global-level plugin registry from: > '/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/conf/plugin-registry.xml' > [INFO] Scanning for projects... > [INFO] Reactor build order: > [INFO] Paycore > [INFO] Paycore :: Merchant > [INFO] Paycore :: Merchant :: Core > [INFO] Paycore :: Merchant :: Services > [INFO] > ---------------------------------------------------------------------------- > [INFO] Building Paycore > [INFO] task-segment: [clean] > [INFO] > ---------------------------------------------------------------------------- > [DEBUG] maven-clean-plugin: resolved to version 2.1 from repository > maven-snapshots > [DEBUG] Trying repository maven-snapshots > Downloading: > http://snapshots.maven.codehaus.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.1/maven-clean-plugin-2.1.pom > [DEBUG] Artifact not found - using stub model: Unable to locate resource in > repository > org.apache.maven.plugins:maven-clean-plugin:pom:2.1 > from the specified remote repositories: > central (http://repo1.maven.org/maven2), > maven-snapshots (http://snapshots.maven.codehaus.org/maven2), > paybytouch-legacy (http://repository.paybytouch.com/m1/repository) > [DEBUG] Using defaults for missing POM > org.apache.maven.plugins:maven-clean-plugin:pom:2.1 > [DEBUG] maven-surefire-plugin: resolved to version 2.1.3-SNAPSHOT from > repository maven-snapshots > [DEBUG] maven-surefire-plugin: resolved to version 2.1.3-20060228.012944-10 > from repository maven-snapshots > [DEBUG] Retrieving parent-POM from the repository for project: > null:maven-surefire-plugin:maven-plugin:2.1.3-20060228.012944-10 > [DEBUG] maven-one-plugin: resolved to version 1.0-20060213.011019-4 from > repository maven-snapshots > [DEBUG] maven-one-plugin: resolved to version 1.0-20060213.011019-4 from > repository maven-snapshots > [DEBUG] org.apache.maven.plugins:maven-clean-plugin:maven-plugin:2.1 > (selected for runtime) > ----------------------------------------------------- > this realm = app0.child-container[org.apache.maven.plugins:maven-clean-plugin] > urls[0] = > file:/Users/jason/.m2/repository/org/apache/maven/plugins/maven-clean-plugin/2.1/maven-clean-plugin-2.1.jar > Number of imports: 0 > this realm = plexus.core.maven > urls[0] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/commons-cli-1.0.jar > urls[1] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/doxia-sink-api-1.0-alpha-7.jar > urls[2] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/jsch-0.1.24.jar > urls[3] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-artifact-2.0.2.jar > urls[4] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-artifact-manager-2.0.2.jar > urls[5] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-core-2.0.2-javadoc.jar > urls[6] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-core-2.0.2.jar > urls[7] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-error-diagnostics-2.0.2.jar > urls[8] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-model-2.0.2.jar > urls[9] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-monitor-2.0.2.jar > urls[10] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-plugin-api-2.0.2.jar > urls[11] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-plugin-descriptor-2.0.2.jar > urls[12] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-plugin-parameter-documenter-2.0.2.jar > urls[13] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-plugin-registry-2.0.2.jar > urls[14] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-profile-2.0.2.jar > urls[15] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-project-2.0.2.jar > urls[16] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-reporting-api-2.0.2.jar > urls[17] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-repository-metadata-2.0.2.jar > urls[18] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/maven-settings-2.0.2.jar > urls[19] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/plexus-interactivity-api-1.0-alpha-4.jar > urls[20] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/wagon-file-1.0-alpha-6.jar > urls[21] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/wagon-http-lightweight-1.0-alpha-6.jar > urls[22] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/wagon-provider-api-1.0-alpha-6.jar > urls[23] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/wagon-ssh-1.0-alpha-6.jar > urls[24] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/lib/wagon-ssh-external-1.0-alpha-6.jar > Number of imports: 0 > this realm = plexus.core > urls[0] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/core/plexus-container-default-1.0-alpha-9.jar > urls[1] = > file:/Users/jason/ws/paybytouch/dev/paycore/main/tools/maven/core/plexus-utils-1.1.jar > Number of imports: 0 > ----------------------------------------------------- > [INFO] > ---------------------------------------------------------------------------- > [ERROR] BUILD ERROR > [INFO] > ---------------------------------------------------------------------------- > [INFO] Internal error in the plugin manager executing goal > 'org.apache.maven.plugins:maven-clean-plugin:2.1:clean': Unable to find the > mojo 'org.apache.maven.plugins:maven-clean-plugin:2.1:clean' in the plugin > 'org.apache.maven.plugins:maven-clean-plugin' > org/apache/maven/shared/model/fileset/SetBase > [INFO] > ---------------------------------------------------------------------------- > [DEBUG] Trace > org.apache.maven.lifecycle.LifecycleExecutionException: Internal error in the > plugin manager executing goal > 'org.apache.maven.plugins:maven-clean-plugin:2.1:clean': Unable to find the > mojo 'org.apache.maven.plugins:maven-clean-plugin:2.1:clean' in the plugin > 'org.apache.maven.plugins:maven-clean-plugin' > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:535) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:472) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:451) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:303) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:270) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:139) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:249) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) > at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) > at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) > at org.codehaus.classworlds.Launcher.main(Launcher.java:375) > Caused by: org.apache.maven.plugin.PluginManagerException: Unable to find the > mojo 'org.apache.maven.plugins:maven-clean-plugin:2.1:clean' in the plugin > 'org.apache.maven.plugins:maven-clean-plugin' > at > org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(DefaultPluginManager.java:536) > at > org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:393) > at > org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:531) > ... 16 more > Caused by: > org.codehaus.plexus.component.repository.exception.ComponentLookupException: > Unable to lookup component > 'org.apache.maven.plugin.Mojoorg.apache.maven.plugins:maven-clean-plugin:2.1:clean', > it could not be created > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:335) > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:440) > at > org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(DefaultPluginManager.java:527) > ... 18 more > Caused by: > org.codehaus.plexus.component.factory.ComponentInstantiationException: Could > not instanciate component: role: 'null', implementation: > 'org.apache.maven.plugin.clean.CleanMojo' > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.makeException(JavaComponentFactory.java:77) > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.newInstance(JavaComponentFactory.java:62) > at > org.codehaus.plexus.DefaultPlexusContainer.createComponentInstance(DefaultPlexusContainer.java:1464) > at > org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:93) > at > org.codehaus.plexus.component.manager.PerLookupComponentManager.getComponent(PerLookupComponentManager.java:48) > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:331) > ... 20 more > Caused by: java.lang.NoClassDefFoundError: > org/apache/maven/shared/model/fileset/SetBase > at java.lang.Class.getDeclaredConstructors0(Native Method) > at java.lang.Class.privateGetDeclaredConstructors(Class.java:1618) > at java.lang.Class.getConstructor0(Class.java:1930) > at java.lang.Class.newInstance0(Class.java:278) > at java.lang.Class.newInstance(Class.java:261) > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.newInstance(JavaComponentFactory.java:44) > ... 24 more > [INFO] > ---------------------------------------------------------------------------- > [INFO] Total time: 1 second > [INFO] Finished at: Wed Mar 01 14:36:37 PST 2006 > [INFO] Final Memory: 2M/4M > [INFO] > ---------------------------------------------------------------------------- > {noformat} > I had included the central repo in my {{pom.xml}}: > {code} > <pluginRepositories> > <pluginRepository> > <id>central</id> > <name>Central Maven Repository</name> > <url>http://repo1.maven.org/maven2</url> > </pluginRepository> > > <pluginRepository> > <id>maven-snapshots</id> > <name>Maven Snapshots Repository</name> > <url>http://snapshots.maven.codehaus.org/maven2</url> > </pluginRepository> > > <!-- Legacy Plugin Repositories --> > > <pluginRepository> > <id>paybytouch-legacy</id> > <name>PayByTouch Repository (Maven 1)</name> > <url>http://repository.paybytouch.com/m1/repository</url> > <layout>legacy</layout> > </pluginRepository> > </pluginRepositories> > {code} > Removing the central entry from my {{pom.xml}} resolved the problem: > {code} > <pluginRepositories> > <pluginRepository> > <id>maven-snapshots</id> > <name>Maven Snapshots Repository</name> > <url>http://snapshots.maven.codehaus.org/maven2</url> > </pluginRepository> > > <!-- Legacy Plugin Repositories --> > > <pluginRepository> > <id>paybytouch-legacy</id> > <name>PayByTouch Repository (Maven 1)</name> > <url>http://repository.paybytouch.com/m1/repository</url> > <layout>legacy</layout> > </pluginRepository> > </pluginRepositories> > {code} -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira