Source:
private void collectProjects( List<MavenProject> projects, final List<File> files, final MavenExecutionRequest request ) throws ProjectBuildingException { final ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest(); List<ProjectBuildingResult> results; long start = System.currentTimeMillis(); if ( request.getDegreeOfConcurrency() <= 1 || Boolean.getBoolean( "maven.concurrentGraph.disable" ) ) { results = projectBuilder.build( files, request.isRecursive(), projectBuildingRequest ); } else { ForkJoinPool forkJoinPool = new ForkJoinPool( request.getDegreeOfConcurrency(), ForkJoinPool.defaultForkJoinWorkerThreadFactory, null, true ); try { results = forkJoinPool.invoke( ForkJoinTask.adapt( new Callable<List<ProjectBuildingResult>>() { public List<ProjectBuildingResult> call() throws Exception { return projectBuilder.build( files, request.isRecursive(), projectBuildingRequest ); } } ) ); } finally { forkJoinPool.shutdown(); } } if ( logger.isDebugEnabled() ) { logger.debug( "Project graph built in " + ( System.currentTimeMillis() - start ) ); } boolean problems = false; for ( ProjectBuildingResult result : results ) { projects.add( result.getProject() ); if ( !result.getProblems().isEmpty() && logger.isWarnEnabled() ) { logger.warn( "" ); logger.warn( "Some problems were encountered while building the effective model for " + result.getProject().getId() ); for ( ModelProblem problem : result.getProblems() ) { String loc = ModelProblemUtils.formatLocation( problem, result.getProjectId() ); logger.warn( problem.getMessage() + ( StringUtils.isNotEmpty( loc ) ? " @ " + loc : "" ) ); } problems = true; } } if ( problems ) { logger.warn( "" ); logger.warn( "It is highly recommended to fix these problems" + " because they threaten the stability of your build." ); logger.warn( "" ); logger.warn( "For this reason, future Maven versions might no" + " longer support building such malformed projects." ); logger.warn( "" ); } }

Target:
private void collectProjects( List<MavenProject> projects, final List<File> files, final MavenExecutionRequest request ) throws ProjectBuildingException { final ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest(); long start = System.currentTimeMillis(); List<ProjectBuildingResult> results; if ( request.getDegreeOfConcurrency() <= 1 || Boolean.getBoolean( "maven.concurrentGraph.disable" ) ) { results = projectBuilder.build( files, request.isRecursive(), projectBuildingRequest ); } else { ForkJoinPool fjp = new ForkJoinPool( request.getDegreeOfConcurrency() ); try { results = fjp.invoke( ForkJoinTask.adapt( () -> projectBuilder.build( files, request.isRecursive(), projectBuildingRequest ) ) ); } finally { fjp.shutdown(); } } if ( logger.isDebugEnabled() ) { logger.debug( "Project graph built in " + ( System.currentTimeMillis() - start ) + " millis." ); } boolean problems = false; for ( ProjectBuildingResult result : results ) { projects.add( result.getProject() ); if ( !result.getProblems().isEmpty() && logger.isWarnEnabled() ) { logger.warn( "" ); logger.warn( "Some problems were encountered while building the effective model for " + result.getProject().getId() ); for ( ModelProblem problem : result.getProblems() ) { String loc = ModelProblemUtils.formatLocation( problem, result.getProjectId() ); logger.warn( problem.getMessage() + ( StringUtils.isNotEmpty( loc ) ? " @ " + loc : "" ) ); } problems = true; } } if ( problems ) { logger.warn( "" ); logger.warn( "It is highly recommended to fix these problems" + " because they threaten the stability of your build." ); logger.warn( "" ); logger.warn( "For this reason, future Maven versions might no" + " longer support building such malformed projects." ); logger.warn( "" ); } }