[MNG-5482] detect missing Sonatype Aether classes to give a hint to
AetherClassNotFound Wiki article

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/ac64dd6b
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/ac64dd6b
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/ac64dd6b

Branch: refs/heads/slf4j-logback
Commit: ac64dd6bb6096e8dbd54e3520208e5737fb1c804
Parents: 22d74b0
Author: Hervé Boutemy <hbout...@apache.org>
Authored: Thu May 30 03:10:51 2013 +0200
Committer: Hervé Boutemy <hbout...@apache.org>
Committed: Thu May 30 03:10:51 2013 +0200

----------------------------------------------------------------------
 .../maven/exception/DefaultExceptionHandler.java | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/ac64dd6b/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
 
b/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
index 6066593..5452fdf 100644
--- 
a/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
+++ 
b/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
@@ -31,6 +31,7 @@ import org.apache.maven.model.building.ModelProblemUtils;
 import org.apache.maven.plugin.AbstractMojoExecutionException;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.PluginContainerException;
 import org.apache.maven.plugin.PluginExecutionException;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingResult;
@@ -198,7 +199,23 @@ public class DefaultExceptionHandler
             }
             else if ( exception instanceof PluginExecutionException )
             {
-                reference = getReference( exception.getCause() );
+                Throwable cause = exception.getCause();
+
+                if ( cause instanceof PluginContainerException )
+                {
+                    Throwable cause2 = cause.getCause();
+
+                    if ( cause2 instanceof NoClassDefFoundError
+                        && cause2.getMessage().contains( 
"org/sonatype/aether/" ) )
+                    {
+                        reference = "AetherClassNotFound";
+                    }
+                }
+
+                if ( StringUtils.isEmpty( reference ) )
+                {
+                    reference = getReference( cause );
+                }
 
                 if ( StringUtils.isEmpty( reference ) )
                 {

Reply via email to