in maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/util/PluginUtils.java [112:148]
public static boolean isMavenReport(String mojoClassName, MavenProject project) throws IllegalArgumentException {
if (mojoClassName == null) {
throw new IllegalArgumentException("mojo implementation should be declared");
}
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
if (project != null) {
List<String> classPathStrings;
try {
classPathStrings = project.getCompileClasspathElements();
if (project.getExecutionProject() != null) {
classPathStrings.addAll(project.getExecutionProject().getCompileClasspathElements());
}
} catch (DependencyResolutionRequiredException e) {
throw new IllegalArgumentException(e);
}
List<URL> urls = new ArrayList<>(classPathStrings.size());
for (String classPathString : classPathStrings) {
try {
urls.add(new File(classPathString).toURL());
} catch (MalformedURLException e) {
throw new IllegalArgumentException(e);
}
}
classLoader = new URLClassLoader(urls.toArray(new URL[urls.size()]), classLoader);
}
try {
Class<?> clazz = Class.forName(mojoClassName, false, classLoader);
return MavenReport.class.isAssignableFrom(clazz);
} catch (ClassNotFoundException e) {
return false;
}
}