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 import org.codehaus.plexus.util.StringUtils;
24
25
26
27
28 public class PluginExecutionException extends PluginManagerException {
29
30 private final MojoExecution mojoExecution;
31
32 public PluginExecutionException(MojoExecution mojoExecution, MavenProject project, String message) {
33 super(mojoExecution.getMojoDescriptor(), project, message);
34 this.mojoExecution = mojoExecution;
35 }
36
37 public PluginExecutionException(
38 MojoExecution mojoExecution, MavenProject project, String message, Throwable cause) {
39 super(mojoExecution.getMojoDescriptor(), project, message, cause);
40 this.mojoExecution = mojoExecution;
41 }
42
43 public PluginExecutionException(MojoExecution mojoExecution, MavenProject project, Exception cause) {
44 super(mojoExecution.getMojoDescriptor(), project, constructMessage(mojoExecution, cause), cause);
45 this.mojoExecution = mojoExecution;
46 }
47
48 public PluginExecutionException(
49 MojoExecution mojoExecution, MavenProject project, DuplicateArtifactAttachmentException cause) {
50 super(mojoExecution.getMojoDescriptor(), project, constructMessage(mojoExecution, cause), cause);
51 this.mojoExecution = mojoExecution;
52 }
53
54 public MojoExecution getMojoExecution() {
55 return mojoExecution;
56 }
57
58 private static String constructMessage(MojoExecution mojoExecution, Throwable cause) {
59 String message;
60
61 if (mojoExecution != null) {
62 message = "Execution " + mojoExecution.getExecutionId() + " of goal "
63 + mojoExecution.getMojoDescriptor().getId() + " failed";
64 } else {
65 message = "Mojo execution failed";
66 }
67
68 if (cause != null && StringUtils.isNotEmpty(cause.getMessage())) {
69 message += ": " + cause.getMessage();
70 } else {
71 message += ".";
72 }
73
74 return message;
75 }
76 }