You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/10/16 13:39:40 UTC

svn commit: r825852 - in /maven/maven-3/trunk: maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/org/apache/maven/plugin/ maven-core/src/main/java/org/apache/maven/plugin/prefix/ maven-core/src/main/java/org/apache/maven/plugin/prefix...

Author: bentmann
Date: Fri Oct 16 11:39:40 2009
New Revision: 825852

URL: http://svn.apache.org/viewvc?rev=825852&view=rev
Log:
o Improved some exception messages

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/NoPluginFoundForPrefixException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolutionException.java
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
    maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=825852&r1=825851&r2=825852&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Fri Oct 16 11:39:40 2009
@@ -92,6 +92,18 @@
 
     public MavenExecutionResult execute( MavenExecutionRequest request )
     {
+        try
+        {
+            return doExecute( request );
+        }
+        catch ( OutOfMemoryError e )
+        {
+            return processResult( new DefaultMavenExecutionResult(), e );
+        }
+    }
+
+    private MavenExecutionResult doExecute( MavenExecutionRequest request )
+    {
         //TODO: Need a general way to inject standard properties
         if ( request.getStartTime() != null )
         {
@@ -133,10 +145,6 @@
         {
             return processResult( result, e );
         }
-        catch ( MavenExecutionException e )
-        {
-            return processResult( result, e );
-        }
 
         session.setProjects( projects );
 
@@ -286,7 +294,7 @@
     }
     
     private List<MavenProject> getProjectsForMavenReactor( MavenExecutionRequest request )
-        throws MavenExecutionException, ProjectBuildingException
+        throws ProjectBuildingException
     {
         List<MavenProject> projects =  new ArrayList<MavenProject>();
 
@@ -348,7 +356,7 @@
     }
 
     private void collectProjects( List<MavenProject> projects, List<File> files, MavenExecutionRequest request )
-        throws MavenExecutionException, ProjectBuildingException
+        throws ProjectBuildingException
     {
         ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest();
 

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionException.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionException.java?rev=825852&r1=825851&r2=825852&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionException.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionException.java Fri Oct 16 11:39:40 2009
@@ -42,13 +42,13 @@
 
     public PluginExecutionException( MojoExecution mojoExecution, MavenProject project, Exception cause )
     {
-        super( mojoExecution.getMojoDescriptor(), project, constructMessage( cause ), cause );
+        super( mojoExecution.getMojoDescriptor(), project, constructMessage( mojoExecution, cause ), cause );
         this.mojoExecution = mojoExecution;
     }
 
     public PluginExecutionException( MojoExecution mojoExecution, MavenProject project, DuplicateArtifactAttachmentException cause )
     {
-        super( mojoExecution.getMojoDescriptor(), project, constructMessage( cause ), cause );
+        super( mojoExecution.getMojoDescriptor(), project, constructMessage( mojoExecution, cause ), cause );
         this.mojoExecution = mojoExecution;
     }
 
@@ -57,16 +57,31 @@
         return mojoExecution;
     }
 
-    private static String constructMessage( Throwable cause )
+    private static String constructMessage( MojoExecution mojoExecution, Throwable cause )
     {
+        String message;
+
+        if ( mojoExecution != null )
+        {
+            message =
+                "Execution " + mojoExecution.getExecutionId() + " of goal " + mojoExecution.getMojoDescriptor().getId()
+                    + " failed";
+        }
+        else
+        {
+            message = "Mojo execution failed";
+        }
+
         if ( cause != null )
         {
-            return "Mojo execution failed: " + cause.getMessage();
+            message = ": " + cause.getMessage();
         }
         else
         {
-            return "Mojo execution failed.";
+            message += ".";
         }
+
+        return message;
     }
 
 }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/NoPluginFoundForPrefixException.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/NoPluginFoundForPrefixException.java?rev=825852&r1=825851&r2=825852&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/NoPluginFoundForPrefixException.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/NoPluginFoundForPrefixException.java Fri Oct 16 11:39:40 2009
@@ -32,11 +32,42 @@
     
     private List<ArtifactRepository> remoteRepositories;
     
-    public NoPluginFoundForPrefixException( String prefix, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+    public NoPluginFoundForPrefixException( String prefix, List<String> pluginGroups,
+                                            ArtifactRepository localRepository,
+                                            List<ArtifactRepository> remoteRepositories )
     {
-        super( "No plugin found for prefix '" + prefix + "'" );
+        super( "No plugin found for prefix '" + prefix + "' in the current project and in the plugin groups "
+            + pluginGroups + " available from the repositories " + format( localRepository, remoteRepositories ) );
         this.prefix = prefix;
         this.localRepository = localRepository;
-        this.remoteRepositories = remoteRepositories;        
+        this.remoteRepositories = remoteRepositories;
     }
+
+    private static String format( ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+    {
+        String repos = "[";
+
+        if ( localRepository != null )
+        {
+            repos += localRepository.getId() + " (" + localRepository.getBasedir() + ")";
+        }
+
+        if ( remoteRepositories != null && !remoteRepositories.isEmpty() )
+        {
+            repos += ", ";
+
+            for ( ArtifactRepository repository : remoteRepositories )
+            {
+                if ( repository != null )
+                {
+                    repos += repository.getId() + " (" + repository.getUrl() + ")";
+                }
+            }
+        }
+
+        repos += "]";
+
+        return repos;
+    }
+
 }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java?rev=825852&r1=825851&r2=825852&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java Fri Oct 16 11:39:40 2009
@@ -76,7 +76,8 @@
 
             if ( result == null )
             {
-                throw new NoPluginFoundForPrefixException( request.getPrefix(), request.getLocalRepository(),
+                throw new NoPluginFoundForPrefixException( request.getPrefix(), request.getPluginGroups(),
+                                                           request.getLocalRepository(),
                                                            request.getRemoteRepositories() );
             }
         }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolutionException.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolutionException.java?rev=825852&r1=825851&r2=825852&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolutionException.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolutionException.java Fri Oct 16 11:39:40 2009
@@ -19,8 +19,9 @@
  * under the License.
  */
 
-import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
-import org.apache.maven.repository.legacy.metadata.ArtifactMetadataRetrievalException;
+import java.util.List;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
 
 public class PluginVersionResolutionException
     extends Exception
@@ -33,34 +34,27 @@
 
     public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage, Throwable cause )
     {
-        super( "Error resolving version for \'" + groupId + ":" + artifactId + "\': " + baseMessage, cause );
-
-        this.groupId = groupId;
-        this.artifactId = artifactId;
-        this.baseMessage = baseMessage;
-    }
-
-    public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage, ArtifactMetadataRetrievalException cause )
-    {
-        super( "Error resolving version for \'" + groupId + ":" + artifactId + "\': " + baseMessage, cause );
+        super( "Error resolving version for plugin \'" + groupId + ":" + artifactId + "\': " + baseMessage, cause );
 
         this.groupId = groupId;
         this.artifactId = artifactId;
         this.baseMessage = baseMessage;
     }
 
-    public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage, InvalidVersionSpecificationException cause )
+    public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage )
     {
-        super( "Error resolving version for \'" + groupId + ":" + artifactId + "\': " + baseMessage, cause );
+        super( "Error resolving version for plugin \'" + groupId + ":" + artifactId + "\': " + baseMessage );
 
         this.groupId = groupId;
         this.artifactId = artifactId;
         this.baseMessage = baseMessage;
     }
 
-    public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage )
+    public PluginVersionResolutionException( String groupId, String artifactId, ArtifactRepository localRepository,
+                                             List<ArtifactRepository> remoteRepositories, String baseMessage )
     {
-        super( "Error resolving version for \'" + groupId + ":" + artifactId + "\': " + baseMessage );
+        super( "Error resolving version for plugin \'" + groupId + ":" + artifactId + "\' from the repositories "
+            + format( localRepository, remoteRepositories ) + ": " + baseMessage );
 
         this.groupId = groupId;
         this.artifactId = artifactId;
@@ -82,4 +76,31 @@
         return baseMessage;
     }
 
+    private static String format( ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )
+    {
+        String repos = "[";
+
+        if ( localRepository != null )
+        {
+            repos += localRepository.getId() + " (" + localRepository.getBasedir() + ")";
+        }
+
+        if ( remoteRepositories != null && !remoteRepositories.isEmpty() )
+        {
+            repos += ", ";
+
+            for ( ArtifactRepository repository : remoteRepositories )
+            {
+                if ( repository != null )
+                {
+                    repos += repository.getId() + " (" + repository.getUrl() + ")";
+                }
+            }
+        }
+
+        repos += "]";
+
+        return repos;
+    }
+
 }

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java?rev=825852&r1=825851&r2=825852&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java Fri Oct 16 11:39:40 2009
@@ -149,7 +149,8 @@
         if ( StringUtils.isEmpty( result.getVersion() ) )
         {
             throw new PluginVersionResolutionException( request.getGroupId(), request.getArtifactId(),
-                                                        "Plugin not found in any repository" );
+                                                        request.getLocalRepository(), request.getRemoteRepositories(),
+                                                        "Plugin not found in any plugin repository" );
         }
 
         return result;

Modified: maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=825852&r1=825851&r2=825852&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java (original)
+++ maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java Fri Oct 16 11:39:40 2009
@@ -470,6 +470,17 @@
                     else
                     {
                         logger.error( es.getMessage() );
+                        logger.error( "To see the full stack trace of the error, re-run Maven with the -e switch." );
+                    }
+
+                    logger.error( "Re-run Maven using the -X switch to enable full debug logging." );
+
+                    if ( StringUtils.isNotEmpty( es.getReference() ) )
+                    {
+                        logger.error( "" );
+                        logger.error( "For more information about the error and possible solutions"
+                            + ", please try the following article:" );
+                        logger.error( "  " + es.getReference() );
                     }
                 }