You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2018/12/26 09:24:34 UTC
[maven] 01/01: [MNG-6529] ProjectBuilder.build(List ...)
honor request.isResolveDependency
This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch MNG-6529
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 732e7de8938afdc0b0c6bfa7aa78f5595aa6721b
Author: Mickael Istria <mi...@redhat.com>
AuthorDate: Tue Nov 27 15:54:14 2018 +0100
[MNG-6529] ProjectBuilder.build(List<Project> ...) honor
request.isResolveDependency
---
.../maven/project/DefaultProjectBuilder.java | 15 +++++---
.../apache/maven/project/ProjectBuilderTest.java | 42 ++++++++++++++++++++++
.../projects/basic-resolveDependencies.xml | 15 ++++++++
3 files changed, 68 insertions(+), 4 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index a659046..35a4e9f 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -371,7 +371,7 @@ public class DefaultProjectBuilder
{
noErrors =
build( results, new ArrayList<MavenProject>(), projectIndex, interimResults, request,
- new HashMap<File, Boolean>() ) && noErrors;
+ new HashMap<File, Boolean>(), config.session ) && noErrors;
}
finally
{
@@ -572,7 +572,8 @@ public class DefaultProjectBuilder
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;
@@ -587,15 +588,21 @@ public class DefaultProjectBuilder
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 )
{
diff --git a/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java b/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java
index 5511cb1..18f22bd 100644
--- a/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java
@@ -20,6 +20,8 @@ package org.apache.maven.project;
*/
import java.io.File;
+import java.util.Collections;
+import java.util.List;
import java.util.Properties;
import org.apache.maven.AbstractCoreMavenComponentTestCase;
@@ -30,6 +32,7 @@ import org.apache.maven.model.building.ModelSource;
public class ProjectBuilderTest
extends AbstractCoreMavenComponentTestCase
{
+ @Override
protected String getProjectsDirectory()
{
return "src/test/projects/project-builder";
@@ -84,4 +87,43 @@ public class ProjectBuilderTest
// 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() );
+ }
+
}
diff --git a/maven-core/src/test/resources/projects/basic-resolveDependencies.xml b/maven-core/src/test/resources/projects/basic-resolveDependencies.xml
new file mode 100644
index 0000000..d25326b
--- /dev/null
+++ b/maven-core/src/test/resources/projects/basic-resolveDependencies.xml
@@ -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>
\ No newline at end of file