You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2018/05/18 21:40:05 UTC

[maven] branch MNG-6410 created (now f405517)

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a change to branch MNG-6410
in repository https://gitbox.apache.org/repos/asf/maven.git.


      at f405517  [MNG-6410] Add groupId to --resume-from suggestion if artifactId is not unique in reactor

This branch includes the following new commits:

     new f405517  [MNG-6410] Add groupId to --resume-from suggestion if artifactId is not unique in reactor

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
michaelo@apache.org.

[maven] 01/01: [MNG-6410] Add groupId to --resume-from suggestion if artifactId is not unique in reactor

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch MNG-6410
in repository https://gitbox.apache.org/repos/asf/maven.git

commit f405517056f9bb24eee0f028ca1c497e1a1992a6
Author: Ɓukasz Dywicki <lu...@code-house.org>
AuthorDate: Fri May 11 15:46:05 2018 +0200

    [MNG-6410] Add groupId to --resume-from suggestion if artifactId is not unique in reactor
    
    This closes #166
---
 .../main/java/org/apache/maven/cli/MavenCli.java   | 30 ++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 7b5d97b..da2a594 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -1006,8 +1006,8 @@ public class MavenCli
             {
                 slf4jLogger.error( "" );
                 slf4jLogger.error( "After correcting the problems, you can resume the build with the command" );
-                slf4jLogger.error( buffer().a( "  " ).strong( "mvn <goals> -rf :"
-                                + project.getArtifactId() ).toString() );
+                slf4jLogger.error( buffer().a( "  " ).strong( "mvn <goals> -rf "
+                    + getFailedProject( result.getTopologicallySortedProjects(), project ) ).toString() );
             }
 
             if ( MavenExecutionRequest.REACTOR_FAIL_NEVER.equals( cliRequest.request.getReactorFailureBehavior() ) )
@@ -1027,6 +1027,32 @@ public class MavenCli
         }
     }
 
+    /**
+     * A helper method to determine the value returned for re-execution of the build.
+     *
+     * By default -rf :artifactId will pick up first module which matches, but quite often failed project might be later
+     * in build queue. This means that developer will either have to type group id or wait for build execution of all
+     * modules which were fine, but they are still before one which reported errors.
+     * Since build reactor might contain multiple projects with same artifact id for developer convenience we print
+     * out groupId:artifactId when there is a name clash and :artifactId if there is no conflict.
+     *
+     * @param mavenProjects Maven projects which are part of build execution.
+     * @param failedProject Project which has failed.
+     * @return Value for -rf flag to restart build exactly from place where it failed.
+     */
+    private String getFailedProject( List<MavenProject> mavenProjects, MavenProject failedProject )
+    {
+        for ( MavenProject buildProject : mavenProjects )
+        {
+            if ( failedProject.getArtifactId().equals( buildProject.getArtifactId() ) && !failedProject.equals(
+                    buildProject ) )
+            {
+                return failedProject.getGroupId() + ":" + failedProject.getArtifactId();
+            }
+        }
+        return ":" + failedProject.getArtifactId();
+    }
+
     private void logSummary( ExceptionSummary summary, Map<String, String> references, String indent,
                              boolean showErrors )
     {

-- 
To stop receiving notification emails like this one, please contact
michaelo@apache.org.