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]