in maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java [464:496]
private Map<String, JavaAnnotatedElement> extractFieldsAnnotations(
JavaClass javaClass, Map<String, JavaClass> javaClassesMap) {
try {
Map<String, JavaAnnotatedElement> rawParams = new TreeMap<>();
// we have to add the parent fields first, so that they will be overwritten by the local fields if
// that actually happens...
JavaClass superClass = javaClass.getSuperJavaClass();
if (superClass != null) {
if (!superClass.getFields().isEmpty()) {
rawParams = extractFieldsAnnotations(superClass, javaClassesMap);
}
// maybe sources comes from scan of sources artifact
superClass = javaClassesMap.get(superClass.getFullyQualifiedName());
if (superClass != null && !superClass.getFields().isEmpty()) {
rawParams = extractFieldsAnnotations(superClass, javaClassesMap);
}
} else {
rawParams = new TreeMap<>();
}
for (JavaField field : javaClass.getFields()) {
rawParams.put(field.getName(), field);
}
return rawParams;
} catch (NoClassDefFoundError e) {
LOGGER.warn("Failed extracting parameters from " + javaClass);
throw e;
}
}