in maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/DefaultMojoAnnotationsScanner.java [89:124]
public Map<String, MojoAnnotatedClass> scan(MojoAnnotationsScannerRequest request) throws ExtractionException {
Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = new HashMap<>();
try {
String mavenApiVersion = null;
for (Artifact dependency : request.getDependencies()) {
scan(mojoAnnotatedClasses, dependency.getFile(), request.getIncludePatterns(), dependency, true);
if (request.getMavenApiVersion() == null
&& dependency.getGroupId().equals("org.apache.maven")
&& (dependency.getArtifactId().equals("maven-plugin-api")
|| dependency.getArtifactId().equals("maven-api-core"))) {
String version = dependency.getVersion();
if (mavenApiVersion != null && !Objects.equals(version, mavenApiVersion)) {
throw new UnsupportedOperationException("Mixing Maven 3 and Maven 4 plugins is not supported."
+ " Fix your dependencies so that you depend either on maven-plugin-api for a Maven 3 plugin,"
+ " or maven-api-core for a Maven 4 plugin.");
}
mavenApiVersion = version;
}
}
request.setMavenApiVersion(mavenApiVersion);
for (File classDirectory : request.getClassesDirectories()) {
scan(
mojoAnnotatedClasses,
classDirectory,
request.getIncludePatterns(),
request.getProject().getArtifact(),
false);
}
} catch (IOException e) {
throw new ExtractionException(e.getMessage(), e);
}
return mojoAnnotatedClasses;
}