Skip to content

Commit

Permalink
[MNG-6529] ProjectBuilder.build(List<Project> ...) honor
Browse files Browse the repository at this point in the history
request.isResolveDependency
  • Loading branch information
mickaelistria committed Dec 18, 2018
1 parent e4e33f7 commit 732e7de
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 4 deletions.
Expand Up @@ -371,7 +371,7 @@ public List<ProjectBuildingResult> build( List<File> pomFiles, boolean recursive
{
noErrors =
build( results, new ArrayList<MavenProject>(), projectIndex, interimResults, request,
new HashMap<File, Boolean>() ) && noErrors;
new HashMap<File, Boolean>(), config.session ) && noErrors;
}
finally
{
Expand Down Expand Up @@ -572,7 +572,8 @@ private void populateReactorModelPool( ReactorModelPool reactorModelPool, List<I

private boolean build( List<ProjectBuildingResult> results, List<MavenProject> projects,
Map<String, MavenProject> projectIndex, List<InterimResult> interimResults,
ProjectBuildingRequest request, Map<File, Boolean> profilesXmls )
ProjectBuildingRequest request, Map<File, Boolean> profilesXmls,
RepositorySystemSession session )
{
boolean noErrors = true;

Expand All @@ -587,15 +588,21 @@ private boolean build( List<ProjectBuildingResult> results, List<MavenProject> p

List<MavenProject> modules = new ArrayList<>();
noErrors =
build( results, modules, projectIndex, interimResult.modules, request, profilesXmls ) && noErrors;
build( results, modules, projectIndex, interimResult.modules, request, profilesXmls, session )
&& noErrors;

projects.addAll( modules );
projects.add( project );

project.setExecutionRoot( interimResult.root );
project.setCollectedProjects( modules );
DependencyResolutionResult resolutionResult = null;
if ( request.isResolveDependencies() )
{
resolutionResult = resolveDependencies( project, session );
}

results.add( new DefaultProjectBuildingResult( project, result.getProblems(), null ) );
results.add( new DefaultProjectBuildingResult( project, result.getProblems(), resolutionResult ) );
}
catch ( ModelBuildingException e )
{
Expand Down
Expand Up @@ -20,6 +20,8 @@
*/

import java.io.File;
import java.util.Collections;
import java.util.List;
import java.util.Properties;

import org.apache.maven.AbstractCoreMavenComponentTestCase;
Expand All @@ -30,6 +32,7 @@
public class ProjectBuilderTest
extends AbstractCoreMavenComponentTestCase
{
@Override
protected String getProjectsDirectory()
{
return "src/test/projects/project-builder";
Expand Down Expand Up @@ -84,4 +87,43 @@ public void testVersionlessManagedDependency()
// this is expected
}
}

public void testResolveDependencies()
throws Exception
{
File pomFile = new File( "src/test/resources/projects/basic-resolveDependencies.xml" );
MavenSession mavenSession = createMavenSession( null );
ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest();
configuration.setRepositorySession( mavenSession.getRepositorySession() );
configuration.setResolveDependencies( true );

// single project build entry point
ProjectBuildingResult result = lookup( org.apache.maven.project.ProjectBuilder.class ).build( pomFile, configuration );
assertEquals( 1, result.getProject().getArtifacts().size() );
// multi projects build entry point
List<ProjectBuildingResult> results = lookup( org.apache.maven.project.ProjectBuilder.class ).build( Collections.singletonList( pomFile ), false, configuration );
assertEquals( 1, results.size() );
MavenProject mavenProject = results.get( 0 ).getProject();
assertEquals( 1, mavenProject.getArtifacts().size() );
}

public void testDontResolveDependencies()
throws Exception
{
File pomFile = new File( "src/test/resources/projects/basic-resolveDependencies.xml" );
MavenSession mavenSession = createMavenSession( null );
ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest();
configuration.setRepositorySession( mavenSession.getRepositorySession() );
configuration.setResolveDependencies( false );

// single project build entry point
ProjectBuildingResult result = lookup( org.apache.maven.project.ProjectBuilder.class ).build( pomFile, configuration );
assertEquals( 0, result.getProject().getArtifacts().size() );
// multi projects build entry point
List<ProjectBuildingResult> results = lookup( org.apache.maven.project.ProjectBuilder.class ).build( Collections.singletonList( pomFile ), false, configuration );
assertEquals( 1, results.size() );
MavenProject mavenProject = results.get( 0 ).getProject();
assertEquals( 0, mavenProject.getArtifacts().size() );
}

}
@@ -0,0 +1,15 @@
<project>
<modelVersion>4.0.0</modelVersion>

<groupId>test</groupId>
<artifactId>basic-resolveDependencies.xml</artifactId>
<version>0.0.1-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>org.apache.maven.its</groupId>
<artifactId>a</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
</project>

0 comments on commit 732e7de

Please sign in to comment.