[ http://jira.codehaus.org/browse/MNG-2690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on MNG-2690 started by John Casey. > DefaultPluginManager.getConfiguredMojo() doesn't handle NoClassDefFoundError > correctly > -------------------------------------------------------------------------------------- > > Key: MNG-2690 > URL: http://jira.codehaus.org/browse/MNG-2690 > Project: Maven 2 > Issue Type: Bug > Components: Plugins and Lifecycle > Affects Versions: 2.0.4 > Reporter: Aaron Digulla > Assignee: John Casey > Fix For: 2.1.0 > > > If maven tries to download a file which doesn't exist and it believes there > is no other place where it can get the file, you can have the situation that > Maven tries to invoke a Plugin without a complete classpath. In the log, > you'll see something like this: > Downloading: > http://repository.codehaus.org/org/codehaus/mojo/dependency-maven-plugin/1.0/dependency-maven-plugin-1.0.pom > Downloading: > http://repo1.maven.org/maven2/org/codehaus/mojo/dependency-maven-plugin/1.0/dependency-maven-plugin-1.0.jar > 15K downloaded > As you can see, Maven tries to download the POM from a different site than > the JAR. Now, the classpath of the JAR is incomplete because the POM is > missing. Things get really nasty when Maven tries to access the plugin. > You'll get: > java.lang.NoClassDefFoundError: > Lorg/codehaus/plexus/archiver/manager/ArchiverManager; > which tells you exactly nothing since you have no idea who wants that class. > The cause of the problem is that PlexusContainer doesn't catch errors (well, > Java says you shouldn't but the user would really like to see what's going > on). > My fix was to duplicate the catch in DefaultPluginManager.getConfiguredMojo() > (around line 530): > catch ( NoClassDefFoundError e ) > { > throw new PluginManagerException( "Unable to find the mojo '" + > mojoDescriptor.getRoleHint() + > "' in the plugin '" + pluginDescriptor.getPluginLookupKey() + > "' because of NoClassDefFoundError:", e ); > } > This way, I get at least an idea which plugin is causing the problem. > But I guess the container should be fixed to catch these errors. -- 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