This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch MNG-5760 in repository https://gitbox.apache.org/repos/asf/maven.git
commit ff350dfd05dca376db697b66f70f4a220e336d48 Author: Martin Kanters <[email protected]> AuthorDate: Sat May 23 07:59:01 2020 +0200 Fixed a bug where a failed project would be excluded in the next build when it failed after another failed build. --- .../apache/maven/execution/BuildResumptionManager.java | 2 +- .../maven/execution/BuildResumptionManagerTest.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java b/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java index 0f6bf39..0fb22e4 100644 --- a/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java +++ b/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java @@ -186,7 +186,7 @@ public class BuildResumptionManager .collect( Collectors.toList() ); String projectsToSkip = remainingProjects.stream() - .filter( project -> result.getBuildSummary( project ) != null ) + .filter( project -> result.getBuildSummary( project ) instanceof BuildSuccess ) .filter( project -> hasNoDependencyOnProjects( project, failedProjectsGAList ) ) .map( project -> String.format( "%s:%s", project.getGroupId(), project.getArtifactId() ) ) .collect( Collectors.joining( PROPERTY_DELIMITER ) ); diff --git a/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java b/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java index 96c0dee..5c3129b 100644 --- a/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java +++ b/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java @@ -107,6 +107,21 @@ public class BuildResumptionManagerTest } @Test + public void projectsFailingAfterAnotherFailedProjectAreNotExcluded() + { + MavenProject projectA = createSucceededMavenProject( "A" ); + MavenProject projectB = createFailedMavenProject( "B" ); + MavenProject projectC = createSucceededMavenProject( "C" ); + MavenProject projectD = createFailedMavenProject( "D" ); + result.setTopologicallySortedProjects( asList( projectA, projectB, projectC, projectD ) ); + + Properties properties = buildResumptionManager.determineResumptionProperties( result ); + + assertThat( properties.get( "resumeFrom" ), is("test:B") ); + assertThat( properties.get( "excludedProjects" ), is("test:C") ); + } + + @Test public void multipleExcludedProjectsAreCommaSeparated() { MavenProject projectA = createFailedMavenProject( "A" );
