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


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to