in src/main/java/org/apache/maven/plugins/help/DescribeMojo.java [628:717]
private boolean describeCommand(StringBuilder descriptionBuffer) throws MojoExecutionException {
if (cmd.indexOf(':') == -1) {
// phase
Lifecycle lifecycle = defaultLifecycles.getPhaseToLifecycleMap().get(cmd);
if (lifecycle == null) {
throw new MojoExecutionException("The given phase '" + cmd + "' is an unknown phase.");
}
Map<String, String> defaultLifecyclePhases = lifecycleMappings
.get(project.getPackaging())
.getLifecycles()
.get("default")
.getPhases();
List<String> phases = lifecycle.getPhases();
if (lifecycle.getDefaultPhases() == null) {
descriptionBuffer.append("'").append(cmd);
descriptionBuffer
.append("' is a phase corresponding to this plugin:")
.append(LS);
for (String key : phases) {
if (!key.equals(cmd)) {
continue;
}
if (defaultLifecyclePhases.get(key) != null) {
descriptionBuffer.append(defaultLifecyclePhases.get(key));
descriptionBuffer.append(LS);
}
}
descriptionBuffer.append(LS);
descriptionBuffer.append("It is a part of the lifecycle for the POM packaging '");
descriptionBuffer.append(project.getPackaging());
descriptionBuffer.append("'. This lifecycle includes the following phases:");
descriptionBuffer.append(LS);
for (String key : phases) {
descriptionBuffer.append("* ").append(key).append(": ");
String value = defaultLifecyclePhases.get(key);
if (value != null && !value.isEmpty()) {
for (StringTokenizer tok = new StringTokenizer(value, ","); tok.hasMoreTokens(); ) {
descriptionBuffer.append(tok.nextToken().trim());
if (!tok.hasMoreTokens()) {
descriptionBuffer.append(LS);
} else {
descriptionBuffer.append(", ");
}
}
} else {
descriptionBuffer.append(NOT_DEFINED).append(LS);
}
}
} else {
descriptionBuffer.append("'").append(cmd);
descriptionBuffer.append("' is a phase within the '").append(lifecycle.getId());
descriptionBuffer.append("' lifecycle, which has the following phases: ");
descriptionBuffer.append(LS);
for (String key : phases) {
descriptionBuffer.append("* ").append(key).append(": ");
if (lifecycle.getDefaultPhases().get(key) != null) {
descriptionBuffer
.append(lifecycle.getDefaultPhases().get(key))
.append(LS);
} else {
descriptionBuffer.append(NOT_DEFINED).append(LS);
}
}
}
return false;
}
// goals
MojoDescriptor mojoDescriptor;
try {
mojoDescriptor = mojoDescriptorCreator.getMojoDescriptor(cmd, session, project);
} catch (Exception e) {
throw new MojoExecutionException("Unable to get descriptor for " + cmd, e);
}
descriptionBuffer
.append("'")
.append(cmd)
.append("' is a plugin goal (aka mojo)")
.append(".");
descriptionBuffer.append(LS);
plugin = mojoDescriptor.getPluginDescriptor().getId();
goal = mojoDescriptor.getGoal();
return true;
}