1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.assembly.mojos;
20
21 import org.apache.maven.plugin.MojoExecutionException;
22 import org.apache.maven.plugin.MojoFailureException;
23 import org.apache.maven.plugin.descriptor.PluginDescriptor;
24 import org.apache.maven.plugins.annotations.Mojo;
25 import org.apache.maven.plugins.annotations.Parameter;
26 import org.apache.maven.plugins.annotations.ResolutionScope;
27 import org.apache.maven.project.MavenProject;
28 import org.codehaus.plexus.util.xml.Xpp3Dom;
29
30
31
32
33
34
35
36
37
38
39
40
41
42 @Mojo(name = "single", requiresDependencyResolution = ResolutionScope.TEST, threadSafe = true)
43 public class SingleAssemblyMojo extends AbstractAssemblyMojo {
44 @Parameter(defaultValue = "${plugin}", readonly = true)
45 private PluginDescriptor plugin;
46
47 @Override
48 public void execute() throws MojoExecutionException, MojoFailureException {
49 verifyRemovedParameter("classifier");
50 verifyRemovedParameter("descriptor");
51 verifyRemovedParameter("descriptorId");
52 verifyRemovedParameter("includeSite");
53
54 super.execute();
55 }
56
57 private void verifyRemovedParameter(String paramName) {
58 Object pluginConfiguration = plugin.getPlugin().getConfiguration();
59 if (pluginConfiguration instanceof Xpp3Dom) {
60 Xpp3Dom configDom = (Xpp3Dom) pluginConfiguration;
61
62 if (configDom.getChild(paramName) != null) {
63 throw new IllegalArgumentException(
64 "parameter '" + paramName + "' has been removed from the plugin, please verify documentation.");
65 }
66 }
67 }
68
69
70
71 @Parameter(defaultValue = "${project}", readonly = true, required = true)
72 private MavenProject project;
73
74 @Override
75 public MavenProject getProject() {
76 return project;
77 }
78 }