public static boolean isMavenReport()

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;
        }
    }