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

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

Introduction

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

Prototype

MavenProject getProject();

Source Link

Document

Gets the project that was built.

Usage

From source file:com.liferay.maven.plugins.AbstractToolsLiferayMojo.java

License:Open Source License

protected MavenProject resolveProject(Artifact artifact) throws Exception {
    Artifact pomArtifact = artifact;//from w  w w  .  ja v  a2 s.co  m

    String type = artifact.getType();

    if (!type.equals("pom")) {
        pomArtifact = artifactFactory.createArtifact(artifact.getGroupId(), artifact.getArtifactId(),
                artifact.getVersion(), "", "pom");
    }

    ProjectBuildingRequest projectBuildingRequest = new DefaultProjectBuildingRequest();

    projectBuildingRequest.setLocalRepository(localArtifactRepository);
    projectBuildingRequest.setRemoteRepositories(remoteArtifactRepositories);
    projectBuildingRequest.setRepositorySession(session.getRepositorySession());

    List<String> activeProfileIds = new ArrayList<String>();

    MavenExecutionRequest mavenExecutionRequest = session.getRequest();

    for (String activeProfile : mavenExecutionRequest.getActiveProfiles()) {
        activeProfileIds.add(activeProfile);
    }

    projectBuildingRequest.setActiveProfileIds(activeProfileIds);
    projectBuildingRequest.setProfiles(mavenExecutionRequest.getProfiles());

    ProjectBuildingResult projectBuildingResult = projectBuilder.build(pomArtifact, true,
            projectBuildingRequest);

    return projectBuildingResult.getProject();
}

From source file:com.xpn.xwiki.tool.backup.AbstractImportMojo.java

License:Open Source License

protected MavenProject getMavenProject(Artifact artifact) throws MojoExecutionException {
    try {//from  w  ww  .  jav a2 s. c  o m
        ProjectBuildingRequest request = new DefaultProjectBuildingRequest(
                this.session.getProjectBuildingRequest())
                        // We don't want to execute any plugin here
                        .setProcessPlugins(false)
                        // It's not this plugin job to validate this pom.xml
                        .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL)
                        // Use the repositories configured for the built project instead of the default Maven ones
                        .setRemoteRepositories(
                                this.session.getCurrentProject().getRemoteArtifactRepositories());
        // Note: build() will automatically get the POM artifact corresponding to the passed artifact.
        ProjectBuildingResult result = this.projectBuilder.build(artifact, request);
        return result.getProject();
    } catch (ProjectBuildingException e) {
        throw new MojoExecutionException(String.format("Failed to build project for [%s]", artifact), e);
    }
}

From source file:com.xwikisas.xcs.tools.dependenciespackager.PackageExtensionsMojo.java

License:Open Source License

private MavenProject getMavenProject(Artifact artifact) throws MojoExecutionException {
    try {//from w  w w .  j a v  a  2s . c  o m
        ProjectBuildingRequest request = new DefaultProjectBuildingRequest(
                this.session.getProjectBuildingRequest())
                        // We don't want to execute any plugin here
                        .setProcessPlugins(false)
                        // It's not this plugin job to validate this pom.xml
                        .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL)
                        // Use the repositories configured for the built project instead of the default Maven ones
                        .setRemoteRepositories(
                                this.session.getCurrentProject().getRemoteArtifactRepositories());
        // Note: build() will automatically get the POM artifact corresponding to the passed artifact.
        ProjectBuildingResult result = this.projectBuilder.build(artifact, request);
        return result.getProject();
    } catch (ProjectBuildingException e) {
        throw new MojoExecutionException(String.format("Failed to build project for [%s]", artifact), e);
    }
}

From source file:de.fct.companian.analyze.mvn.helper.MvnProjectBuilder.java

License:Apache License

public static MavenProject buildMavenProject(File pomFile) {
    if (logger.isDebugEnabled()) {
        logger.debug("buildMavenProject() start, pomFile=" + pomFile);
    }//from w  w w  .jav a2 s . c o  m
    MavenProject mvnProject = null;

    ClassWorld classWorld = new ClassWorld("plexus.core", Thread.currentThread().getContextClassLoader());

    ContainerConfiguration cc = new DefaultContainerConfiguration().setClassWorld(classWorld)
            .setName("embedder");

    DefaultPlexusContainer container;
    org.codehaus.plexus.logging.Logger mvnLogger;
    try {
        mvnLogger = new ConsoleLogger(org.codehaus.plexus.logging.Logger.LEVEL_DEBUG, "Console");
        container = new DefaultPlexusContainer(cc);
        container.setLoggerManager(new MavenLoggerManager(mvnLogger));
        container.getLoggerManager().setThresholds(org.codehaus.plexus.logging.Logger.LEVEL_DEBUG);

        ProjectBuilder builder;
        try {
            builder = container.lookup(ProjectBuilder.class);
            logger.info("buildMavenProject() project builder = " + builder);

            try {

                ArtifactRepositoryFactory repoFactory = new DefaultArtifactRepositoryFactory();

                ArtifactRepository localRepo = repoFactory.createArtifactRepository("mylocal",
                        "file://h:/maven/repository", new DefaultRepositoryLayout(),
                        new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy());

                List<ArtifactRepository> remoteRepos = new ArrayList<ArtifactRepository>();
                ArtifactRepository mvnCentral = repoFactory.createArtifactRepository("mvnCentral",
                        "http://repo1.maven.org/maven2/", new DefaultRepositoryLayout(),
                        new ArtifactRepositoryPolicy(), new ArtifactRepositoryPolicy());
                remoteRepos.add(mvnCentral);

                ProjectBuildingRequest buildRequest = new DefaultProjectBuildingRequest();
                buildRequest.setLocalRepository(localRepo);
                buildRequest.setRemoteRepositories(remoteRepos);
                buildRequest.setResolveDependencies(true);
                buildRequest.setOffline(false);

                ProjectBuildingResult buildResult = builder.build(pomFile, buildRequest);
                if (buildResult != null) {
                    logger.info("buildMavenProject() got a build result");

                    mvnProject = buildResult.getProject();
                }
            } catch (ProjectBuildingException e) {
                logger.error("buildMavenProject() error building project", e);
            }

        } catch (ComponentLookupException e) {
            logger.error("buildMavenProject() error looking up ArtifactResolver", e);
        }
    } catch (PlexusContainerException e) {
        logger.error("buildMavenProject() error from Plexus container", e);
    }

    if (logger.isDebugEnabled()) {
        logger.debug("buildMavenProject() finished, mvnProject=" + mvnProject);
    }
    return mvnProject;
}

From source file:fr.fastconnect.factory.tibco.bw.maven.BWLifecycleParticipant.java

License:Apache License

private List<MavenProject> prepareProjects(List<MavenProject> projects, MavenSession session)
        throws MavenExecutionException {
    List<MavenProject> result = new ArrayList<MavenProject>();

    ProjectBuildingRequest projectBuildingRequest = session.getProjectBuildingRequest();

    for (MavenProject mavenProject : projects) {
        logger.debug("project: " + mavenProject.getGroupId() + ":" + mavenProject.getArtifactId());

        List<String> oldActiveProfileIds = projectBuildingRequest.getActiveProfileIds();
        try {/*www  . j a  v  a 2 s . c  o  m*/
            List<String> activeProfileIds = activateProfilesWithProperties(mavenProject, oldActiveProfileIds);
            if (activeProfileIds.size() != oldActiveProfileIds.size()) {
                projectBuildingRequest.setActiveProfileIds(activeProfileIds);
                if (mavenProject.getFile() != null) {
                    List<File> files = new ArrayList<File>();
                    files.add(mavenProject.getFile());
                    List<ProjectBuildingResult> results = null;
                    try {
                        results = projectBuilder.build(files, true, projectBuildingRequest);
                    } catch (ProjectBuildingException e) {
                    }

                    for (ProjectBuildingResult projectBuildingResult : results) {
                        mavenProject = projectBuildingResult.getProject();
                    }
                }
            }
        } finally {
            projectBuildingRequest.setActiveProfileIds(oldActiveProfileIds);
        }

        if (mavenProject.getPackaging().startsWith(AbstractBWMojo.BWEAR_TYPE)
                || "true".equals(propertiesManager.getPropertyValue("enableBWLifecycle"))) {
            addTIBCODependenciesToPlugin(mavenProject, logger);
        }
        result.add(mavenProject);
    }

    return result;
}

From source file:hudson.maven.MavenEmbedder.java

License:Apache License

public List<MavenProject> readProjects(File mavenProject, boolean recursive)
        throws ProjectBuildingException, MavenEmbedderException {
    ClassLoader originalCl = Thread.currentThread().getContextClassLoader();
    try {//from   w ww .j a va2 s  .  c om
        List<ProjectBuildingResult> results = buildProjects(mavenProject, recursive);
        List<MavenProject> projects = new ArrayList<MavenProject>(results.size());
        for (ProjectBuildingResult result : results) {
            projects.add(result.getProject());
        }
        return projects;
    } finally {
        Thread.currentThread().setContextClassLoader(originalCl);
    }

}

From source file:info.ronjenkins.maven.rtr.steps.release.RebuildReleaseReactor.java

License:Apache License

@Override
protected void releaseExecute(final MavenSession session, final RTRComponents components)
        throws MavenExecutionException {
    final List<MavenProject> reactor = session.getProjects();
    final List<MavenProject> newReactor = new ArrayList<>(reactor.size());
    final ProjectBuilder projectBuilder = components.getProjectBuilder();
    File pomFile;//w  ww. ja va  2  s .c o m
    ProjectBuildingResult result;
    MavenProject newProject;
    for (final MavenProject project : reactor) {
        pomFile = project.getFile();
        try {
            result = projectBuilder.build(pomFile, session.getProjectBuildingRequest());
        } catch (final ProjectBuildingException e) {
            this.logger.error("");
            throw new SmartReactorReleaseException(e);
        }
        newProject = result.getProject();
        if (project.isExecutionRoot()) {
            newProject.setExecutionRoot(true);
        }
        newReactor.add(newProject);
    }
    // Set the new list of projects, but don't replace the actual list
    // object.
    session.getProjects().clear();
    session.getProjects().addAll(newReactor);
}

From source file:io.airlift.resolver.ArtifactResolver.java

License:Apache License

public List<Artifact> resolvePom(File pomFile) {
    if (pomFile == null) {
        throw new RuntimeException("pomFile is null");
    }//w  w w.  j av  a  2  s  . com

    MavenProject pom;
    try {
        PlexusContainer container = container();
        org.apache.maven.repository.RepositorySystem lrs = container
                .lookup(org.apache.maven.repository.RepositorySystem.class);
        ProjectBuilder projectBuilder = container.lookup(ProjectBuilder.class);
        ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
        request.setSystemProperties(requiredSystemProperties());
        request.setRepositorySession(repositorySystemSession);
        request.setProcessPlugins(false);
        request.setLocalRepository(lrs.createDefaultLocalRepository());
        request.setRemoteRepositories(
                Arrays.asList(new ArtifactRepository[] { lrs.createDefaultRemoteRepository() }.clone()));
        ProjectBuildingResult result = projectBuilder.build(pomFile, request);
        pom = result.getProject();
    } catch (Exception e) {
        if (e instanceof RuntimeException) {
            throw (RuntimeException) e;
        }
        throw new RuntimeException("Error loading pom: " + pomFile.getAbsolutePath(), e);
    }

    Artifact rootArtifact = new DefaultArtifact(pom.getArtifact().getGroupId(),
            pom.getArtifact().getArtifactId(), pom.getArtifact().getClassifier(), pom.getArtifact().getType(),
            pom.getArtifact().getVersion(), null, new File(pom.getModel().getBuild().getOutputDirectory()));

    CollectRequest collectRequest = new CollectRequest();
    for (org.apache.maven.model.Dependency dependency : pom.getDependencies()) {
        collectRequest.addDependency(toAetherDependency(dependency));
    }
    for (RemoteRepository repository : pom.getRemoteProjectRepositories()) {
        collectRequest.addRepository(repository);
    }
    for (RemoteRepository repository : repositories) {
        collectRequest.addRepository(repository);
    }

    // Make sure we account for managed dependencies
    if (pom.getDependencyManagement() != null) {
        for (org.apache.maven.model.Dependency managedDependency : pom.getDependencyManagement()
                .getDependencies()) {
            collectRequest.addManagedDependency(toAetherDependency(managedDependency));
        }
    }

    DependencyRequest dependencyRequest = new DependencyRequest(collectRequest,
            DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME));
    List<Artifact> artifacts = resolveArtifacts(dependencyRequest);
    return ImmutableList.<Artifact>builder().add(rootArtifact).addAll(artifacts).build();
}

From source file:net.oneandone.maven.embedded.Maven.java

License:Apache License

public MavenProject loadPom(FileNode file, boolean resolve, Properties userProperties, List<String> profiles,
        List<Dependency> dependencies) throws RepositoryException, ProjectBuildingException {
    ProjectBuildingRequest request;//w  ww.  ja  va 2s . c o m
    ProjectBuildingResult result;
    List<Exception> problems;

    request = new DefaultProjectBuildingRequest();
    request.setRepositorySession(repositorySession);
    request.setRemoteRepositories(remoteLegacy);
    request.setProcessPlugins(false);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    request.setSystemProperties(System.getProperties());
    if (userProperties != null) {
        request.setUserProperties(userProperties);
    }
    // If you don't turn this into RepositoryMerging.REQUEST_DOMINANT the dependencies will be resolved against Maven Central
    // and not against the configured repositories. The default of the DefaultProjectBuildingRequest is
    // RepositoryMerging.POM_DOMINANT.
    request.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT);
    request.setResolveDependencies(resolve);
    if (profiles != null) {
        request.setActiveProfileIds(profiles);
    }
    result = builder.build(file.toPath().toFile(), request);

    // TODO: i've seen these collection errors for a dependency with ranges. Why does Aether NOT throw an exception in this case?
    if (result.getDependencyResolutionResult() != null) {
        problems = result.getDependencyResolutionResult().getCollectionErrors();
        if (problems != null && !problems.isEmpty()) {
            throw new RepositoryException("collection errors: " + problems.toString(), problems.get(0));
        }
    }

    if (dependencies != null) {
        if (!resolve) {
            throw new IllegalArgumentException();
        }
        dependencies.addAll(result.getDependencyResolutionResult().getDependencies());
    }
    return result.getProject();
}

From source file:net.oneandone.maven.plugins.prerelease.util.Maven.java

License:Apache License

public MavenProject loadPom(FileNode file) throws ProjectBuildingException {
    ProjectBuildingRequest request;//from   w w  w  . j  a va 2  s  . c  om
    ProjectBuildingResult result;

    // session initializes the repository session in the build request
    request = new DefaultProjectBuildingRequest(parentSession.getProjectBuildingRequest());
    request.setRemoteRepositories(remoteRepositories);
    request.setProcessPlugins(false);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
    request.setSystemProperties(System.getProperties());
    //If you don't turn this into RepositoryMerging.REQUEST_DOMINANT the dependencies will be resolved against Maven Central
    //and not against the configured repositories. The default of the DefaultProjectBuildingRequest is
    // RepositoryMerging.POM_DOMINANT.
    request.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT);
    request.setResolveDependencies(false);
    result = builder.build(file.toPath().toFile(), request);
    return result.getProject();
}