[ 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