[ http://jira.codehaus.org/browse/MNG-2118?page=comments#action_73807 ] Gareth Moorst commented on MNG-2118: ------------------------------------
I have the same problem - in a project which has the central repository redefined to point to an internal maven-proxy server, a clean install of maven does not download all the artifacts required to make the clean goal work. In another project which does not redefine the central repository, mvn clean worked fine. This is holding back our adoption of Maven - we need to be able to redefine the central server, as most of our developers have no direct access to the internet. > Listing central repo in pluginRepositories confuses Maven > --------------------------------------------------------- > > Key: MNG-2118 > URL: http://jira.codehaus.org/browse/MNG-2118 > Project: Maven 2 > Issue Type: Bug > Components: POM, Plugins and Lifecycle > Affects 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