private boolean isReportGoal()

in src/main/java/org/apache/maven/plugins/help/DescribeMojo.java [856:885]


    private boolean isReportGoal(MojoDescriptor md) {
        PluginDescriptor pd = md.getPluginDescriptor();
        List<URL> urls = new ArrayList<>();
        ProjectBuildingRequest pbr = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
        pbr.setRemoteRepositories(project.getRemoteArtifactRepositories());
        pbr.setPluginArtifactRepositories(project.getPluginArtifactRepositories());
        pbr.setResolveDependencies(true);
        pbr.setProject(null);
        pbr.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
        try {
            Artifact jar = resolveArtifact(
                            new DefaultArtifact(pd.getGroupId(), pd.getArtifactId(), "jar", pd.getVersion()))
                    .getArtifact();
            Artifact pom = resolveArtifact(
                            new DefaultArtifact(pd.getGroupId(), pd.getArtifactId(), "pom", pd.getVersion()))
                    .getArtifact();
            MavenProject mavenProject = projectBuilder.build(pom.getFile(), pbr).getProject();
            urls.add(jar.getFile().toURI().toURL());
            for (String artifact : mavenProject.getCompileClasspathElements()) {
                urls.add(new File(artifact).toURI().toURL());
            }
            try (URLClassLoader classLoader =
                    new URLClassLoader(urls.toArray(new URL[0]), getClass().getClassLoader())) {
                return MavenReport.class.isAssignableFrom(Class.forName(md.getImplementation(), false, classLoader));
            }
        } catch (Exception e) {
            getLog().warn("Couldn't identify if this goal is a report goal: " + e.getMessage());
            return false;
        }
    }