in maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java [190:225]
public List<MojoDescriptor> execute(PluginToolsRequest request)
throws ExtractionException, InvalidPluginDescriptorException {
Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = scanAnnotations(request);
Optional<Integer> maxClassVersion = mojoAnnotatedClasses.values().stream()
.map(MojoAnnotatedClass::getClassVersion)
.max(new ClassVersionComparator());
if (maxClassVersion.isPresent()) {
String requiredJavaVersion = CLASS_VERSION_TO_JAVA_STRING.get(maxClassVersion.get());
if (StringUtils.isBlank(request.getRequiredJavaVersion())
|| new ComparableVersion(request.getRequiredJavaVersion())
.compareTo(new ComparableVersion(requiredJavaVersion))
< 0) {
request.setRequiredJavaVersion(requiredJavaVersion);
}
}
JavaProjectBuilder builder = scanJavadoc(request, mojoAnnotatedClasses.values());
Map<String, JavaClass> javaClassesMap = discoverClasses(builder);
final JavadocLinkGenerator linkGenerator;
if (request.getInternalJavadocBaseUrl() != null
|| (request.getExternalJavadocBaseUrls() != null
&& !request.getExternalJavadocBaseUrls().isEmpty())) {
linkGenerator = new JavadocLinkGenerator(
request.getInternalJavadocBaseUrl(),
request.getInternalJavadocVersion(),
request.getExternalJavadocBaseUrls(),
request.getSettings());
} else {
linkGenerator = null;
}
populateDataFromJavadoc(builder, mojoAnnotatedClasses, javaClassesMap, linkGenerator);
return toMojoDescriptors(mojoAnnotatedClasses, request.getPluginDescriptor());
}