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
23 import org.apache.maven.execution.MavenSession;
24 import org.apache.maven.lifecycle.internal.LifecycleModuleBuilder;
25 import org.apache.maven.lifecycle.internal.ProjectBuildList;
26 import org.apache.maven.lifecycle.internal.ProjectSegment;
27 import org.apache.maven.lifecycle.internal.ReactorBuildStatus;
28 import org.apache.maven.lifecycle.internal.ReactorContext;
29 import org.apache.maven.lifecycle.internal.TaskSegment;
30 import org.apache.maven.lifecycle.internal.builder.Builder;
31 import org.codehaus.plexus.component.annotations.Component;
32 import org.codehaus.plexus.component.annotations.Requirement;
33
34
35
36
37
38
39 @Component(role = Builder.class, hint = "singlethreaded")
40 public class SingleThreadedBuilder implements Builder {
41 @Requirement
42 private LifecycleModuleBuilder lifecycleModuleBuilder;
43
44 public void build(
45 MavenSession session,
46 ReactorContext reactorContext,
47 ProjectBuildList projectBuilds,
48 List<TaskSegment> taskSegments,
49 ReactorBuildStatus reactorBuildStatus) {
50 for (TaskSegment taskSegment : taskSegments) {
51 for (ProjectSegment projectBuild : projectBuilds.getByTaskSegment(taskSegment)) {
52 try {
53 lifecycleModuleBuilder.buildProject(
54 session, reactorContext, projectBuild.getProject(), taskSegment);
55 if (reactorBuildStatus.isHalted()) {
56 break;
57 }
58 } catch (Exception e) {
59 break;
60 }
61 }
62 }
63 }
64 }