Example usage for org.apache.maven.project ProjectBuildingRequest setResolveDependencies

List of usage examples for org.apache.maven.project ProjectBuildingRequest setResolveDependencies

Introduction

In this page you can find the example usage for org.apache.maven.project ProjectBuildingRequest setResolveDependencies.

Prototype

ProjectBuildingRequest setResolveDependencies(boolean resolveDependencies);

Source Link

Usage

From source file:com.monday_consulting.maven.plugins.fsm.util.resolver.MavenGetArtifactsResolver.java

License:Apache License

private MavenProject getMavenProjectViaRepository(final Module module, final ProjectBuilder projectBuilder)
        throws MojoFailureException {
    try {//from   w  ww  .j a  va 2s . co  m
        final ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
        request.setResolveDependencies(true);
        request.setRemoteRepositories(mavenProject.getRemoteArtifactRepositories());
        request.setRepositorySession(repoSession);

        final LocalRepositoryManager localRepositoryManager = repoSession.getLocalRepositoryManager();
        final File repoBasedir = localRepositoryManager.getRepository().getBasedir();

        // the module type artifact (war, jar, pom ...)
        final DefaultArtifact moduleArtifact = new DefaultArtifact(module.getGroupId(), module.getArtifactId(),
                module.getClassifier(), module.getType(), module.getVersion());
        final String pathForLocalArtifact = localRepositoryManager.getPathForLocalArtifact(moduleArtifact);
        final File moduleArtifactFile = new File(repoBasedir, pathForLocalArtifact);

        // the module pom artifact to build maven project
        final DefaultArtifact pomArtifact = new DefaultArtifact(module.getGroupId(), module.getArtifactId(),
                module.getClassifier(), "pom", module.getVersion());
        final String localArtifactPath = localRepositoryManager.getPathForLocalArtifact(pomArtifact);

        final File projectFile = new File(repoBasedir, localArtifactPath);

        MavenProject result;
        try {
            log.info("try to build maven project for " + module.getArtifactId() + " from local repository...");
            result = projectBuilder.build(projectFile, request).getProject();

            if (!moduleArtifactFile.exists()) {
                resolveArtifact(module, moduleArtifact);
            }
        } catch (ProjectBuildingException e) {
            log.info("failed... try to resolve " + module.getArtifactId() + " from remote repository...");
            final Artifact mavenArtifact = new org.apache.maven.artifact.DefaultArtifact(module.getGroupId(),
                    module.getArtifactId(), module.getVersion(), null, module.getType(), module.getClassifier(),
                    new DefaultArtifactHandler());
            result = projectBuilder.build(mavenArtifact, request).getProject();

            resolveArtifact(module, moduleArtifact);
        }

        if (result != null) {
            log.info("Dependency resolved: " + module.getArtifactId());
            result.getArtifact().setFile(moduleArtifactFile);
            result.setParent(mavenProject);
        } else {
            throw new MojoFailureException(
                    "No dependency for " + module.getArtifactId() + " found in local or remote repository");
        }

        return result;
    } catch (ProjectBuildingException e) {
        throw new MojoFailureException(
                "No dependency for " + module.getArtifactId() + "found in local or remote repository", 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);
    }//  w  ww. j a  va  2 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:hudson.maven.MavenEmbedder.java

License:Apache License

public List<ProjectBuildingResult> buildProjects(File mavenProject, boolean recursive)
        throws ProjectBuildingException, MavenEmbedderException {
    ClassLoader originalCl = Thread.currentThread().getContextClassLoader();
    try {/*w  w w  .j  av a2 s .  c o  m*/
        Thread.currentThread().setContextClassLoader(this.plexusContainer.getContainerRealm());
        ProjectBuilder projectBuilder = lookup(ProjectBuilder.class);
        ProjectBuildingRequest projectBuildingRequest = this.mavenExecutionRequest.getProjectBuildingRequest();

        projectBuildingRequest.setValidationLevel(this.mavenRequest.getValidationLevel());

        RepositorySystemSession repositorySystemSession = buildRepositorySystemSession();

        projectBuildingRequest.setRepositorySession(repositorySystemSession);

        projectBuildingRequest.setProcessPlugins(this.mavenRequest.isProcessPlugins());

        projectBuildingRequest.setResolveDependencies(this.mavenRequest.isResolveDependencies());

        List<ProjectBuildingResult> results = projectBuilder.build(Arrays.asList(mavenProject), recursive,
                projectBuildingRequest);

        return results;
    } catch (ComponentLookupException e) {
        throw new MavenEmbedderException(e.getMessage(), e);
    } finally {
        Thread.currentThread().setContextClassLoader(originalCl);
    }

}

From source file:net.adamcin.oakpal.maven.mojo.OakpalMojoTestCaseBase.java

License:Apache License

protected SessionAndProject buildProject(final File pom) throws Exception {
    assertNotNull(pom);//from  w ww .ja v  a2s. c o m
    assertTrue(pom.exists());
    SessionAndProject sessionAndProject = new SessionAndProject();
    sessionAndProject.setSession(newMavenSession());

    ProjectBuildingRequest buildingRequest = sessionAndProject.getSession().getProjectBuildingRequest();
    buildingRequest.setResolveDependencies(true);
    ProjectBuilder projectBuilder = lookup(ProjectBuilder.class);
    MavenProject project = projectBuilder.build(pom, buildingRequest).getProject();
    sessionAndProject.setProject(project);
    return sessionAndProject;
}

From source file:net.flexmojos.oss.plugin.war.CopyMojo.java

License:Open Source License

private MavenProject getProject(Artifact artifact) throws MojoExecutionException {
    try {// w  ww  .j  a  va  2  s . co m
        ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
        request.setLocalRepository(localRepository);
        request.setRemoteRepositories(remoteRepositories);
        request.setResolveDependencies(true);
        ArrayList<String> ids = new ArrayList<String>();
        for (Profile profile : project.getActiveProfiles()) {
            ids.add(profile.getId());
        }
        request.setActiveProfileIds(ids);
        request.setRepositorySession(session.getRepositorySession());
        return projectBuilder.build(artifact, request).getProject();
    } catch (ProjectBuildingException e) {
        getLog().warn("Failed to retrieve pom for " + artifact);
        return null;
    }
}

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;
    ProjectBuildingResult result;/*from   w w  w  .  j ava  2s . c o  m*/
    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;
    ProjectBuildingResult result;/*from w ww . j  a  v  a 2s .  c  o m*/

    // 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();
}

From source file:org.apifocal.maven.plugins.bom.AbstractBomMojo.java

License:Apache License

protected void importProperties(Dependency artifactMetadata) throws MojoExecutionException {
    try {//from w w w . j  a  v a  2s .  co  m
        Artifact artifact = repoSystem.createDependencyArtifact(artifactMetadata);
        getLog().info("Importing properties from " + artifact);

        ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(
                session.getProjectBuildingRequest());
        buildingRequest.setProject(null);
        buildingRequest.setResolveDependencies(false);
        MavenProject bomProject = projectBuilder.build(artifact, buildingRequest).getProject();

        bomProject.getProperties()
                .forEach((Object key, Object value) -> project.getProperties().putIfAbsent(key, value));
    } catch (ProjectBuildingException ex) {
        getLog().error("Failed to resolve artifact", ex);
        throw new MojoExecutionException("Could not read artifact " + artifactMetadata.toString(), ex);
    }
}

From source file:org.appformer.maven.integration.embedder.MavenEmbedder.java

License:Apache License

private ProjectBuildingRequest getProjectBuildingRequest() throws ComponentLookupException {
    ProjectBuildingRequest projectBuildingRequest = this.mavenExecutionRequest.getProjectBuildingRequest();
    projectBuildingRequest.setValidationLevel(this.mavenRequest.getValidationLevel());
    RepositorySystemSession repositorySystemSession = componentProvider
            .getRepositorySystemSession(mavenExecutionRequest);
    projectBuildingRequest.setRepositorySession(repositorySystemSession);
    projectBuildingRequest.setProcessPlugins(this.mavenRequest.isProcessPlugins());
    projectBuildingRequest.setResolveDependencies(this.mavenRequest.isResolveDependencies());
    return projectBuildingRequest;
}

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

License:Apache License

public synchronized ProjectBuildingRequest getProjectBuildingRequest(final ProjectToolsSession session)
        throws ProjectToolsException {
    ProjectBuildingRequest pbr = session.getProjectBuildingRequest();
    try {/*from   ww  w  .  jav a 2 s  . c o  m*/
        if (pbr == null) {
            pbr = emb.serviceManager().createProjectBuildingRequest();

            pbr.setProcessPlugins(false);
            pbr.setResolveDependencies(false);
            pbr.setSystemProperties(System.getProperties());
            pbr.setInactiveProfileIds(new ArrayList<String>());
            pbr.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT);

            final RepositorySystemSession rss = getRepositorySystemSession(session);
            pbr.setRepositorySession(rss);
            pbr.setLocalRepository(
                    mavenRepositorySystem.createLocalRepository(rss.getLocalRepository().getBasedir()));
            pbr.setRemoteRepositories(getArtifactRepositories(session));

            session.setProjectBuildingRequest(pbr);
        } else {
            pbr = new DefaultProjectBuildingRequest(pbr);
            pbr.setRepositorySession(getRepositorySystemSession(session));
        }
    } catch (final EMBException e) {
        throw new ProjectToolsException("Failed to create project-building request: %s", e, e.getMessage());
    } catch (final InvalidRepositoryException e) {
        throw new ProjectToolsException("Failed to create local-repository instance. Reason: %s", e,
                e.getMessage());
    }

    return pbr;
}