You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2021/04/02 14:13:35 UTC
[maven] branch master updated: [MNG-7112] Do not select child
modules when --non-recursive is given.
This is an automated email from the ASF dual-hosted git repository.
martinkanters pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 7c742c2 [MNG-7112] Do not select child modules when --non-recursive is given.
7c742c2 is described below
commit 7c742c298b60f60b1f8b92e43e4952ee128a4cd0
Author: Martin Kanters <ma...@apache.org>
AuthorDate: Mon Mar 22 11:39:09 2021 +0100
[MNG-7112] Do not select child modules when --non-recursive is given.
Closes #459
---
.../apache/maven/execution/ProjectActivation.java | 5 +++++
.../apache/maven/graph/DefaultGraphBuilder.java | 2 +-
.../project/collector/DefaultProjectsSelector.java | 5 +++--
.../maven/graph/DefaultGraphBuilderTest.java | 23 +++++++++++++++++++---
4 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java b/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java
index 579ab18..a1d366c 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java
@@ -199,4 +199,9 @@ public class ProjectActivation
{
this.activations.add( new ProjectActivationSettings( selector, ActivationSettings.DEACTIVATION_OPTIONAL ) );
}
+
+ public boolean isEmpty()
+ {
+ return this.activations.isEmpty();
+ }
}
diff --git a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
index 0dbd039..d1236e8 100644
--- a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
@@ -233,7 +233,7 @@ public class DefaultGraphBuilder
selectedProjects.add( selectedProject );
List<MavenProject> children = selectedProject.getCollectedProjects();
- if ( children != null )
+ if ( children != null && request.isRecursive() )
{
selectedProjects.addAll( children );
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsSelector.java b/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsSelector.java
index d341d0a..74be84a 100644
--- a/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsSelector.java
+++ b/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsSelector.java
@@ -60,8 +60,9 @@ public class DefaultProjectsSelector implements ProjectsSelector
{
ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest();
- List<ProjectBuildingResult> results = projectBuilder.build( files, request.isRecursive(),
- projectBuildingRequest );
+ boolean hasProjectSelection = !request.getProjectActivation().isEmpty();
+ boolean isRecursive = hasProjectSelection || request.isRecursive();
+ List<ProjectBuildingResult> results = projectBuilder.build( files, isRecursive, projectBuildingRequest );
List<MavenProject> projects = new ArrayList<>( results.size() );
diff --git a/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java b/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java
index 58885dd..8ff4711 100644
--- a/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java
+++ b/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java
@@ -117,9 +117,13 @@ class DefaultGraphBuilderTest
scenario( "Selected project" )
.activeRequiredProjects( MODULE_B )
.expectResult( MODULE_B ),
- scenario( "Selected project (including child modules)" )
+ scenario( "Selected aggregator project (including child modules)" )
.activeRequiredProjects( MODULE_C )
.expectResult( MODULE_C, MODULE_C_1, MODULE_C_2 ),
+ scenario( "Selected aggregator project with non-recursive" )
+ .activeRequiredProjects( MODULE_C )
+ .nonRecursive()
+ .expectResult( MODULE_C ),
scenario( "Selected optional project" )
.activeOptionalProjects( MODULE_B )
.expectResult( MODULE_B ),
@@ -143,6 +147,10 @@ class DefaultGraphBuilderTest
.inactiveOptionalProjects( "non-existing-module" )
.inactiveRequiredProjects( MODULE_B )
.expectResult( PARENT_MODULE, MODULE_C, MODULE_C_1, MODULE_A, MODULE_C_2, INDEPENDENT_MODULE ),
+ scenario( "Excluded aggregator project with non-recursive" )
+ .inactiveRequiredProjects( MODULE_C )
+ .nonRecursive()
+ .expectResult( PARENT_MODULE, MODULE_C_1, MODULE_A, MODULE_B, MODULE_C_2, INDEPENDENT_MODULE ),
scenario( "Selected and excluded same project" )
.activeRequiredProjects( MODULE_A )
.inactiveRequiredProjects( MODULE_A )
@@ -263,7 +271,8 @@ class DefaultGraphBuilderTest
String parameterResumeFrom,
String parameterMakeBehavior,
ExpectedResult parameterExpectedResult,
- File parameterRequestedPom)
+ File parameterRequestedPom,
+ boolean parameterRecursive )
{
// Given
ProjectActivation projectActivation = new ProjectActivation();
@@ -275,6 +284,7 @@ class DefaultGraphBuilderTest
when( mavenExecutionRequest.getProjectActivation() ).thenReturn( projectActivation );
when( mavenExecutionRequest.getMakeBehavior() ).thenReturn( parameterMakeBehavior );
when( mavenExecutionRequest.getPom() ).thenReturn( parameterRequestedPom );
+ when( mavenExecutionRequest.isRecursive() ).thenReturn( parameterRecursive );
if ( StringUtils.isNotEmpty( parameterResumeFrom ) )
{
when( mavenExecutionRequest.getResumeFrom() ).thenReturn( ":" + parameterResumeFrom );
@@ -394,6 +404,7 @@ class DefaultGraphBuilderTest
private String resumeFrom = "";
private String makeBehavior = "";
private File requestedPom = new File( PARENT_MODULE, "pom.xml" );
+ private boolean recursive = true;
private ScenarioBuilder() { }
@@ -446,6 +457,12 @@ class DefaultGraphBuilderTest
return this;
}
+ public ScenarioBuilder nonRecursive()
+ {
+ this.recursive = false;
+ return this;
+ }
+
public Arguments expectResult( String... expectedReactorProjects )
{
ExpectedResult expectedResult = new SelectedProjectsResult( asList( expectedReactorProjects ) );
@@ -462,7 +479,7 @@ class DefaultGraphBuilderTest
{
return Arguments.arguments( description, activeRequiredProjects, activeOptionalProjects,
inactiveRequiredProjects, inactiveOptionalProjects, resumeFrom, makeBehavior, expectedResult,
- requestedPom );
+ requestedPom, recursive );
}
private List<String> prependWithColonIfNeeded( String[] selectors )