Java源码示例:org.apache.maven.execution.ProjectDependencyGraph
示例1
public static MavenSession get(Path workDir, Properties topLevelProjectProperties) throws Exception {
PomFinder finder = new PomFinder();
Files.walkFileTree(workDir, finder);
List<MavenProject> projects = finder.projects.stream()
.sorted()
.map(MavenSessionMock::createProject)
.collect(Collectors.toList());
MavenProject topLevelProject = projects.get(0);
topLevelProject.getModel().setProperties(topLevelProjectProperties);
MavenSession mavenSession = mock(MavenSession.class, withSettings().lenient());
when(mavenSession.getCurrentProject()).thenReturn(topLevelProject);
MavenExecutionRequest request = mock(MavenExecutionRequest.class);
when(mavenSession.getRequest()).thenReturn(request);
when(mavenSession.getAllProjects()).thenReturn(projects);
when(mavenSession.getProjects()).thenReturn(projects);
when(mavenSession.getTopLevelProject()).thenReturn(topLevelProject);
ProjectDependencyGraph dependencyGraphMock = mock(ProjectDependencyGraph.class);
when(mavenSession.getProjectDependencyGraph()).thenReturn(dependencyGraphMock);
return mavenSession;
}
示例2
public ReactorBuildQueue(Collection<MavenProject> projects,
ProjectDependencyGraph dependencyGraph) {
this.dependencyGraph = dependencyGraph;
final Set<MavenProject> rootProjects = new HashSet<MavenProject>();
for (MavenProject project : projects) {
if (dependencyGraph.getUpstreamProjects(project, false).isEmpty()) {
rootProjects.add(project);
} else {
blockedProjects.add(project);
}
}
this.rootProjects = ImmutableSet.copyOf(rootProjects);
this.projects = ImmutableSet.copyOf(projects);
}
示例3
IncrementalModuleBuilderImpl( List<MavenProject> selectedProjects, LifecycleModuleBuilder lifecycleModuleBuilder,
MavenSession session, ReactorContext reactorContext, List<TaskSegment> taskSegments )
{
this.lifecycleModuleBuilder =
Objects.requireNonNull( lifecycleModuleBuilder, "lifecycleModuleBuilder is not allowed to be null." );
this.mavenSession = Objects.requireNonNull( session, "session is not allowed to be null." );
this.taskSegments = Objects.requireNonNull( taskSegments, "taskSegements is not allowed to be null" );
this.reactorContext = Objects.requireNonNull( reactorContext, "reactorContext is not allowed to be null." );
ProjectDependencyGraph projectDependencyGraph = session.getProjectDependencyGraph();
List<MavenProject> intermediateResult = new LinkedList<>();
for ( MavenProject selectedProject : selectedProjects )
{
intermediateResult.add( selectedProject );
// Up or downstream ? (-amd)
intermediateResult.addAll( projectDependencyGraph.getDownstreamProjects( selectedProject, true ) );
// TODO: Need to think about this? -am ?
// intermediateResult.addAll(projectDependencyGraph.getUpstreamProjects(selectedProject,
// true));
}
List<MavenProject> result = new LinkedList<>();
for ( MavenProject project : intermediateResult )
{
if ( !result.contains( project ) )
{
result.add( project );
}
}
this.projects = result;
}
示例4
@BeforeEach
void before() {
MavenProject mockTLProject = mock(MavenProject.class);
when(mockTLProject.getProperties()).thenReturn(projectProperties);
when(mavenSessionMock.getTopLevelProject()).thenReturn(mockTLProject);
when(mavenSessionMock.getRequest()).thenReturn(mock(MavenExecutionRequest.class));
when(mavenSessionMock.getProjectDependencyGraph()).thenReturn(mock(ProjectDependencyGraph.class));
Whitebox.setInternalState(underTest, new Configuration.Provider(mavenSessionMock));
}
示例5
public String renderCriticalPath(ProjectDependencyGraph graph) {
return renderCriticalPath(DependencyGraph.fromMaven(graph), p -> projectGA(p));
}
示例6
public static Comparator<MavenProject> create(MavenSession session) {
final ProjectDependencyGraph dependencyGraph = session.getProjectDependencyGraph();
return create0(DependencyGraph.fromMaven(dependencyGraph), ImmutableMap.of(), p -> id(p));
}