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 2022/02/19 23:12:43 UTC

[maven] branch master updated: [MNG-7390] Allow selecting modules outside the cwd into the reactor using --projects

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

michaelo 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 03df5f7  [MNG-7390] Allow selecting modules outside the cwd into the reactor using --projects
03df5f7 is described below

commit 03df5f7c639db744a3597c7175c92c8e2a27767b
Author: Martin Kanters <ma...@apache.org>
AuthorDate: Sun Feb 13 14:52:13 2022 +0100

    [MNG-7390] Allow selecting modules outside the cwd into the reactor using --projects
    
    This closes #677
---
 .../java/org/apache/maven/graph/DefaultGraphBuilder.java   | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

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 0b19f72..ff863df 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
@@ -138,8 +138,10 @@ public class DefaultGraphBuilder
     {
         ProjectDependencyGraph projectDependencyGraph = new DefaultProjectDependencyGraph( projects );
         List<MavenProject> activeProjects = projectDependencyGraph.getSortedProjects();
+        List<MavenProject> allSortedProjects = projectDependencyGraph.getSortedProjects();
         activeProjects = trimProjectsToRequest( activeProjects, projectDependencyGraph, session.getRequest() );
-        activeProjects = trimSelectedProjects( activeProjects, projectDependencyGraph, session.getRequest() );
+        activeProjects = trimSelectedProjects(
+                activeProjects, allSortedProjects, projectDependencyGraph, session.getRequest() );
         activeProjects = trimResumedProjects( activeProjects, projectDependencyGraph, session.getRequest() );
         activeProjects = trimExcludedProjects( activeProjects, projectDependencyGraph, session.getRequest() );
 
@@ -171,8 +173,8 @@ public class DefaultGraphBuilder
         return result;
     }
 
-    private List<MavenProject> trimSelectedProjects( List<MavenProject> projects, ProjectDependencyGraph graph,
-                                                     MavenExecutionRequest request )
+    private List<MavenProject> trimSelectedProjects( List<MavenProject> projects, List<MavenProject> allSortedProjects,
+                                                     ProjectDependencyGraph graph, MavenExecutionRequest request )
         throws MavenExecutionException
     {
         List<MavenProject> result = projects;
@@ -183,8 +185,10 @@ public class DefaultGraphBuilder
         if ( !requiredSelectors.isEmpty() || !optionalSelectors.isEmpty() )
         {
             Set<MavenProject> selectedProjects = new HashSet<>( requiredSelectors.size() + optionalSelectors.size() );
-            selectedProjects.addAll( getProjectsBySelectors( request, projects, requiredSelectors, true ) );
-            selectedProjects.addAll( getProjectsBySelectors( request, projects, optionalSelectors, false ) );
+            selectedProjects.addAll(
+                    getProjectsBySelectors( request, allSortedProjects, requiredSelectors, true ) );
+            selectedProjects.addAll(
+                    getProjectsBySelectors( request, allSortedProjects, optionalSelectors, false ) );
 
             // it can be empty when an optional project is missing from the reactor, fallback to returning all projects
             if ( !selectedProjects.isEmpty() )