1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.lifecycle.internal.builder.singlethreaded;
20
21 import java.util.List;
22 import javax.inject.Inject;
23 import javax.inject.Named;
24 import javax.inject.Singleton;
25 import org.apache.maven.execution.MavenSession;
26 import org.apache.maven.lifecycle.internal.LifecycleModuleBuilder;
27 import org.apache.maven.lifecycle.internal.ProjectBuildList;
28 import org.apache.maven.lifecycle.internal.ProjectSegment;
29 import org.apache.maven.lifecycle.internal.ReactorBuildStatus;
30 import org.apache.maven.lifecycle.internal.ReactorContext;
31 import org.apache.maven.lifecycle.internal.TaskSegment;
32 import org.apache.maven.lifecycle.internal.builder.Builder;
33
34
35
36
37
38
39 @Named("singlethreaded")
40 @Singleton
41 public class SingleThreadedBuilder implements Builder {
42 private final LifecycleModuleBuilder lifecycleModuleBuilder;
43
44 @Inject
45 public SingleThreadedBuilder(LifecycleModuleBuilder lifecycleModuleBuilder) {
46 this.lifecycleModuleBuilder = lifecycleModuleBuilder;
47 }
48
49 public void build(
50 MavenSession session,
51 ReactorContext reactorContext,
52 ProjectBuildList projectBuilds,
53 List<TaskSegment> taskSegments,
54 ReactorBuildStatus reactorBuildStatus) {
55 for (TaskSegment taskSegment : taskSegments) {
56 for (ProjectSegment projectBuild : projectBuilds.getByTaskSegment(taskSegment)) {
57 try {
58 lifecycleModuleBuilder.buildProject(
59 session, reactorContext, projectBuild.getProject(), taskSegment);
60 if (reactorBuildStatus.isHalted()) {
61 break;
62 }
63 } catch (Exception e) {
64 break;
65 }
66 }
67 }
68 }
69 }