in buildSrc/src/main/java/org/springframework/boot/build/mavenplugin/DocumentPluginGoals.java [91:129]
private void documentMojo(Plugin plugin, Mojo mojo) throws IOException {
try (PrintWriter writer = new PrintWriter(new FileWriter(new File(this.outputDir, mojo.getGoal() + ".adoc")))) {
String sectionId = "goals-" + mojo.getGoal();
writer.println();
writer.println();
writer.printf("[[%s]]%n", sectionId);
writer.printf("== `%s:%s`%n", plugin.getGoalPrefix(), mojo.getGoal());
writer.printf("`%s:%s:%s`%n", plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion());
writer.println();
writer.println(mojo.getDescription());
List<Parameter> parameters = mojo.getParameters().stream().filter(Parameter::isEditable)
.collect(Collectors.toList());
List<Parameter> requiredParameters = parameters.stream().filter(Parameter::isRequired)
.collect(Collectors.toList());
String parametersSectionId = sectionId + "-parameters";
String detailsSectionId = parametersSectionId + "-details";
if (!requiredParameters.isEmpty()) {
writer.println();
writer.println();
writer.printf("[[%s-required]]%n", parametersSectionId);
writer.println("=== Required parameters");
writeParametersTable(writer, detailsSectionId, requiredParameters);
}
List<Parameter> optionalParameters = parameters.stream().filter((parameter) -> !parameter.isRequired())
.collect(Collectors.toList());
if (!optionalParameters.isEmpty()) {
writer.println();
writer.println();
writer.printf("[[%s-optional]]%n", parametersSectionId);
writer.println("=== Optional parameters");
writeParametersTable(writer, detailsSectionId, optionalParameters);
}
writer.println();
writer.println();
writer.printf("[[%s]]%n", detailsSectionId);
writer.println("=== Parameter details");
writeParameterDetails(writer, parameters, detailsSectionId);
}
}