in maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java [77:135]
public void populatePluginDescriptor(PluginToolsRequest request)
throws ExtractionException, InvalidPluginDescriptorException {
int numMojoDescriptors = 0;
List<MojoDescriptorExtractor> orderedExtractors = getOrderedExtractors();
LOGGER.debug("Using " + orderedExtractors.size() + " mojo extractors.");
HashMap<String, Integer> groupStats = new HashMap<>();
for (MojoDescriptorExtractor extractor : orderedExtractors) {
GroupKey groupKey = extractor.getGroupKey();
String extractorId = extractor.getName();
LOGGER.debug("Applying " + extractorId + " mojo extractor");
List<MojoDescriptor> extractorDescriptors = extractor.execute(request);
int extractorDescriptorsCount = extractorDescriptors.size();
LOGGER.info(extractorId + " mojo extractor found " + extractorDescriptorsCount + " mojo descriptor"
+ (extractorDescriptorsCount > 1 ? "s" : "") + ".");
numMojoDescriptors += extractorDescriptorsCount;
if (extractor.isDeprecated() && extractorDescriptorsCount > 0) {
LOGGER.warn("");
LOGGER.warn("Deprecated extractor " + extractorId
+ " extracted " + extractorDescriptorsCount
+ " descriptor" + (extractorDescriptorsCount > 1 ? "s" : "")
+ ". Upgrade your Mojo definitions.");
if (GroupKey.JAVA_GROUP.equals(groupKey.getGroup())) {
LOGGER.warn("You should use Mojo Annotations instead of Javadoc tags.");
}
LOGGER.warn("");
}
if (groupStats.containsKey(groupKey.getGroup())) {
groupStats.put(groupKey.getGroup(), groupStats.get(groupKey.getGroup()) + extractorDescriptorsCount);
} else {
groupStats.put(groupKey.getGroup(), extractorDescriptorsCount);
}
for (MojoDescriptor descriptor : extractorDescriptors) {
LOGGER.debug("Adding mojo: " + descriptor + " to plugin descriptor.");
descriptor.setPluginDescriptor(request.getPluginDescriptor());
request.getPluginDescriptor().addMojo(descriptor);
}
}
LOGGER.debug("Discovered descriptors by groups: " + groupStats);
if (numMojoDescriptors == 0 && !request.isSkipErrorNoDescriptorsFound()) {
throw new InvalidPluginDescriptorException("No mojo definitions were found for plugin: "
+ request.getPluginDescriptor().getPluginLookupKey() + ".");
}
}