1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin;
20
21 import org.apache.maven.project.DuplicateArtifactAttachmentException;
22 import org.apache.maven.project.MavenProject;
23
24
25
26
27 public class PluginExecutionException extends PluginManagerException {
28
29 private final MojoExecution mojoExecution;
30
31 public PluginExecutionException(MojoExecution mojoExecution, MavenProject project, String message) {
32 super(mojoExecution.getMojoDescriptor(), project, message);
33 this.mojoExecution = mojoExecution;
34 }
35
36 public PluginExecutionException(
37 MojoExecution mojoExecution, MavenProject project, String message, Throwable cause) {
38 super(mojoExecution.getMojoDescriptor(), project, message, cause);
39 this.mojoExecution = mojoExecution;
40 }
41
42 public PluginExecutionException(MojoExecution mojoExecution, MavenProject project, Exception cause) {
43 super(mojoExecution.getMojoDescriptor(), project, constructMessage(mojoExecution, cause), cause);
44 this.mojoExecution = mojoExecution;
45 }
46
47 public PluginExecutionException(
48 MojoExecution mojoExecution, MavenProject project, DuplicateArtifactAttachmentException cause) {
49 super(mojoExecution.getMojoDescriptor(), project, constructMessage(mojoExecution, cause), cause);
50 this.mojoExecution = mojoExecution;
51 }
52
53 public MojoExecution getMojoExecution() {
54 return mojoExecution;
55 }
56
57 private static String constructMessage(MojoExecution mojoExecution, Throwable cause) {
58 String message;
59
60 if (mojoExecution != null) {
61 message = "Execution " + mojoExecution.getExecutionId() + " of goal "
62 + mojoExecution.getMojoDescriptor().getId() + " failed";
63 } else {
64 message = "Mojo execution failed";
65 }
66
67 if (cause != null && cause.getMessage() != null && !cause.getMessage().isEmpty()) {
68 message += ": " + cause.getMessage();
69 } else {
70 message += ".";
71 }
72
73 return message;
74 }
75 }