1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.project;
20
21 import java.io.File;
22 import java.util.List;
23
24
25
26 public class ProjectBuildingException extends Exception {
27 private final String projectId;
28
29 private File pomFile;
30
31 private List<ProjectBuildingResult> results;
32
33 public ProjectBuildingException(String projectId, String message, Throwable cause) {
34 super(createMessage(message, projectId, null), cause);
35 this.projectId = projectId;
36 }
37
38
39
40
41
42
43 public ProjectBuildingException(String projectId, String message, File pomFile) {
44 super(createMessage(message, projectId, pomFile));
45 this.projectId = projectId;
46 this.pomFile = pomFile;
47 }
48
49
50
51
52
53
54
55 protected ProjectBuildingException(String projectId, String message, File pomFile, Throwable cause) {
56 super(createMessage(message, projectId, pomFile), cause);
57 this.projectId = projectId;
58 this.pomFile = pomFile;
59 }
60
61 public ProjectBuildingException(List<ProjectBuildingResult> results) {
62 super("Encountered %d problem(s) while processing the POMs"
63 .formatted(results.stream()
64 .mapToLong(result -> result.getProblems().size())
65 .sum()));
66 this.projectId = "";
67 this.results = results;
68 }
69
70 public File getPomFile() {
71 return pomFile;
72 }
73
74
75
76
77 @Deprecated
78 public String getPomLocation() {
79 if (getPomFile() != null) {
80 return getPomFile().getAbsolutePath();
81 } else {
82 return "null";
83 }
84 }
85
86 public String getProjectId() {
87 return projectId;
88 }
89
90 public List<ProjectBuildingResult> getResults() {
91 return results;
92 }
93
94 private static String createMessage(String message, String projectId, File pomFile) {
95 StringBuilder buffer = new StringBuilder(256);
96 buffer.append(message);
97 buffer.append(" for project ").append(projectId);
98 if (pomFile != null) {
99 buffer.append(" at ").append(pomFile.getAbsolutePath());
100 }
101 return buffer.toString();
102 }
103 }