Skip to content

Commit

Permalink
[MNG-7390] Allow selecting modules outside the cwd into the reactor u…
Browse files Browse the repository at this point in the history
…sing --projects

This closes #677
  • Loading branch information
MartinKanters authored and michael-o committed Feb 19, 2022
1 parent b2a21f1 commit 03df5f7
Showing 1 changed file with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,10 @@ private Result<ProjectDependencyGraph> reactorDependencyGraph( MavenSession sess
{
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() );

Expand Down Expand Up @@ -171,8 +173,8 @@ private List<MavenProject> trimProjectsToRequest( List<MavenProject> activeProje
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;
Expand All @@ -183,8 +185,10 @@ private List<MavenProject> trimSelectedProjects( List<MavenProject> projects, Pr
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() )
Expand Down

0 comments on commit 03df5f7

Please sign in to comment.