Example usage for org.apache.maven.project ProjectBuildingResult getProjectId

List of usage examples for org.apache.maven.project ProjectBuildingResult getProjectId

Introduction

In this page you can find the example usage for org.apache.maven.project ProjectBuildingResult getProjectId.

Prototype

String getProjectId();

Source Link

Document

Gets the identifier of the project that could not be built.

Usage

From source file:org.commonjava.emb.project.ProjectLoader.java

License:Apache License

public List<MavenProject> buildReactorProjectInstances(final ProjectToolsSession session,
        final File... rootPoms) throws ProjectToolsException {
    final ProjectBuildingRequest pbr = sessionInjector.getProjectBuildingRequest(session);

    try {//from w  w  w. j  a v  a 2  s  . c  o  m
        final List<File> pomFiles = Arrays.asList(rootPoms);
        final List<ProjectBuildingResult> results = projectBuilder.build(pomFiles, true, pbr);

        final List<MavenProject> projects = new ArrayList<MavenProject>(results.size());
        for (final ProjectBuildingResult result : results) {
            final MavenProject project = result.getProject();
            project.setRemoteArtifactRepositories(session.getRemoteArtifactRepositories());

            projects.add(project);
        }

        session.setReactorProjects(projects);

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug(
                    "Adding projects to dependency graph:\n\t" + StringUtils.join(projects.iterator(), "\n\t"));
        }
        addProjects(session, projects);

        return projects;
    } catch (final ProjectBuildingException e) {
        // logger.error( "Failed to build MavenProject instances from POM files for sorting: " + e.getMessage(), e
        // );
        final List<ProjectBuildingResult> results = e.getResults();

        final StringBuilder sb = new StringBuilder();

        if (results == null) {
            sb.append("Cannot build reactor project instances for root-POM: ").append(rootPoms);

            final StringWriter sWriter = new StringWriter();
            final PrintWriter pWriter = new PrintWriter(sWriter);

            e.printStackTrace(pWriter);
            sb.append("\n").append(sWriter);
        } else {
            int i = 0;
            for (final ProjectBuildingResult result : results) {
                final List<ModelProblem> problems = result.getProblems();
                if (problems != null && !problems.isEmpty()) {
                    sb.append("\n").append(result.getProjectId());
                    for (final ModelProblem problem : problems) {
                        sb.append("\n\t").append(problem.getMessage()).append("\n\t\t")
                                .append(problem.getSource()).append("@").append(problem.getLineNumber())
                                .append(":" + problem.getColumnNumber());

                        if (problem.getException() != null) {
                            final StringWriter sWriter = new StringWriter();
                            final PrintWriter pWriter = new PrintWriter(sWriter);

                            problem.getException().printStackTrace(pWriter);
                            sb.append("\n").append(sWriter);
                        }

                        sb.append((++i)).append(" ").append(sb);
                    }
                }
            }
        }

        throw new ProjectToolsException("Failed to build project instance. \n\n%s", e, sb);
    }
}