Example usage for org.apache.maven.project DependencyResolutionResult getDependencyGraph

List of usage examples for org.apache.maven.project DependencyResolutionResult getDependencyGraph

Introduction

In this page you can find the example usage for org.apache.maven.project DependencyResolutionResult getDependencyGraph.

Prototype

DependencyNode getDependencyGraph();

Source Link

Document

Gets the dependency graph of the project.

Usage

From source file:com.github.lucapino.manifest.ManifestMojo.java

License:Apache License

public Set<Artifact> getDependencyArtifacts(MavenProject project, RepositorySystemSession repoSession,
        ProjectDependenciesResolver projectDependenciesResolver) throws MojoExecutionException {

    DefaultDependencyResolutionRequest dependencyResolutionRequest = new DefaultDependencyResolutionRequest(
            project, repoSession);/*  ww  w  .  j  a  va 2  s. c om*/
    DependencyResolutionResult dependencyResolutionResult;

    try {
        dependencyResolutionResult = projectDependenciesResolver.resolve(dependencyResolutionRequest);
    } catch (DependencyResolutionException ex) {
        throw new MojoExecutionException(ex.getMessage(), ex);
    }

    Set artifacts = new LinkedHashSet();
    if (dependencyResolutionResult.getDependencyGraph() != null
            && !dependencyResolutionResult.getDependencyGraph().getChildren().isEmpty()) {
        RepositoryUtils.toArtifacts(artifacts, dependencyResolutionResult.getDependencyGraph().getChildren(),
                Collections.singletonList(project.getArtifact().getId()), null);
    }
    return artifacts;
}

From source file:net.sf.taverna.t2.maven.plugins.MavenOsgiUtils.java

License:Apache License

public Set<BundleArtifact> getBundleDependencies(String... scopes) throws MojoExecutionException {
    ScopeDependencyFilter scopeFilter = new ScopeDependencyFilter(Arrays.asList(scopes), null);

    DefaultDependencyResolutionRequest dependencyResolutionRequest = new DefaultDependencyResolutionRequest(
            project, repositorySystemSession);
    dependencyResolutionRequest.setResolutionFilter(scopeFilter);

    DependencyResolutionResult dependencyResolutionResult;
    try {/*w  w  w  .  jav a  2  s.  c  o m*/
        dependencyResolutionResult = projectDependenciesResolver.resolve(dependencyResolutionRequest);
    } catch (DependencyResolutionException ex) {
        throw new MojoExecutionException(ex.getMessage(), ex);
    }

    DependencyNode dependencyGraph = dependencyResolutionResult.getDependencyGraph();
    if (dependencyGraph != null) {
        checkBundleDependencies(dependencyGraph.getChildren());
        return getBundleArtifacts(dependencyGraph.getChildren());
    } else {
        return new HashSet<BundleArtifact>();
    }
}

From source file:org.eclipse.che.maven.server.MavenServerImpl.java

License:Open Source License

private MavenServerResult createResult(File pom, MavenResult mavenResult) throws RemoteException {
    List<MavenProjectProblem> problems = new ArrayList<>();
    Set<MavenKey> unresolvedArtifacts = new HashSet<>();
    validate(pom, mavenResult.getExceptions(), problems);
    MavenProject project = mavenResult.getMavenProject();
    if (project == null) {
        return new MavenServerResult(null, problems, unresolvedArtifacts);
    }// w ww.  ja  v a2s.c  o  m

    MavenModel model = null;
    try {
        DependencyResolutionResult resolutionResult = mavenResult.getDependencyResolutionResult();
        org.eclipse.aether.graph.DependencyNode dependencyNode = null;
        if (resolutionResult != null) {
            dependencyNode = resolutionResult.getDependencyGraph();
        }

        List<org.eclipse.aether.graph.DependencyNode> dependencyNodes = null;
        if (dependencyNode != null) {
            dependencyNodes = dependencyNode.getChildren();
        }

        model = MavenModelUtil.convertProjectToModel(project, dependencyNodes,
                new File(localRepo.getBasedir()));
    } catch (Exception e) {
        validate(project.getFile(), Collections.singletonList(e), problems);
    }

    List<String> activeProfiles = getActiveProfiles(project);
    MavenProjectInfo projectInfo = new MavenProjectInfo(model, null, activeProfiles);

    return new MavenServerResult(projectInfo, problems, unresolvedArtifacts);
}

From source file:org.heneveld.maven.license_audit.AbstractLicensingMojo.java

protected void resolveDependencies() throws MojoExecutionException {
    DependencyResolutionResult depRes;
    try {//from ww w.ja va  2s.c o  m
        DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession(
                mavenSession.getRepositorySession());
        ((DefaultRepositorySystemSession) repositorySession).setDependencySelector(
                newRootScopeDependencySelector(repositorySession.getDependencySelector(), 0));
        DefaultDependencyResolutionRequest depReq = new DefaultDependencyResolutionRequest(project,
                repositorySession);
        depRes = depsResolver.resolve(depReq);
    } catch (DependencyResolutionException e) {
        throw new MojoExecutionException("Cannot resolve dependencies for " + project, e);
    }
    rootDependencyGraph = depRes.getDependencyGraph();
    getLog().debug("Dependency graph with scopes " + includeDependencyScopes + ":");
    dump("", rootDependencyGraph);

    projectByIdCache.put(Coords.of(project).normal(), project);
    collectDeps(rootDependencyGraph, project, 0);
}

From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java

License:Apache License

/**
 * copied from {@link DefaultProjectBuilder#resolveDependencies(MavenProject, RepositorySystemSession)}
 *///from w  w w.j  a  v  a2 s  .  c  o m
private DependencyResolutionResult resolveDependencies(MavenProject project, RepositorySystemSession session) {
    DependencyResolutionResult resolutionResult;

    try {
        ProjectDependenciesResolver dependencyResolver = getComponent(ProjectDependenciesResolver.class);
        DefaultDependencyResolutionRequest resolution = new DefaultDependencyResolutionRequest(project,
                session);
        resolutionResult = dependencyResolver.resolve(resolution);
    } catch (DependencyResolutionException e) {
        resolutionResult = e.getResult();
    }

    Set<Artifact> artifacts = new LinkedHashSet<Artifact>();
    if (resolutionResult.getDependencyGraph() != null) {
        RepositoryUtils.toArtifacts(artifacts, resolutionResult.getDependencyGraph().getChildren(),
                Collections.singletonList(project.getArtifact().getId()), null);

        // Maven 2.x quirk: an artifact always points at the local repo, regardless whether resolved or not
        LocalRepositoryManager lrm = session.getLocalRepositoryManager();
        for (Artifact artifact : artifacts) {
            if (!artifact.isResolved()) {
                String path = lrm.getPathForLocalArtifact(RepositoryUtils.toArtifact(artifact));
                artifact.setFile(new File(lrm.getRepository().getBasedir(), path));
            }
        }
    }
    project.setResolvedArtifacts(artifacts);
    project.setArtifacts(artifacts);

    return resolutionResult;
}

From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null)
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);

    MavenModel model = null;/*from  w w  w  .j  a  v a 2s.  c o  m*/
    try {
        if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
            //noinspection unchecked
            final List<DependencyNode> dependencyNodes = rootNode == null
                    ? Collections.<DependencyNode>emptyList()
                    : rootNode.getChildren();
            model = MavenModelConverter.convertModel(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        } else {
            final DependencyResolutionResult dependencyResolutionResult = result
                    .getDependencyResolutionResult();
            final org.sonatype.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null
                    ? dependencyResolutionResult.getDependencyGraph()
                    : null;

            final List<org.sonatype.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null
                    ? dependencyGraph.getChildren()
                    : Collections.<org.sonatype.aether.graph.DependencyNode>emptyList();
            model = Maven30AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        }
    } catch (Exception e) {
        validate(mavenProject.getFile(), Collections.singleton(e), problems, null);
    }

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java

License:Apache License

@Nonnull
private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result,
        DependencyNode rootNode) throws RemoteException {
    Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList();
    Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>();

    validate(file, result.getExceptions(), problems, unresolvedArtifacts);

    MavenProject mavenProject = result.getMavenProject();
    if (mavenProject == null) {
        return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);
    }//from ww  w  . j a  v  a  2 s .c om

    MavenModel model = null;
    try {
        if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
            //noinspection unchecked
            final List<DependencyNode> dependencyNodes = rootNode == null
                    ? Collections.<DependencyNode>emptyList()
                    : rootNode.getChildren();
            model = MavenModelConverter.convertModel(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        } else {
            final DependencyResolutionResult dependencyResolutionResult = result
                    .getDependencyResolutionResult();
            final org.eclipse.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null
                    ? dependencyResolutionResult.getDependencyGraph()
                    : null;

            final List<org.eclipse.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null
                    ? dependencyGraph.getChildren()
                    : Collections.<org.eclipse.aether.graph.DependencyNode>emptyList();
            model = Maven3AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(),
                    mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(),
                    mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(),
                    getLocalRepositoryFile());
        }
    } catch (Exception e) {
        validate(mavenProject.getFile(), Collections.singleton(e), problems, null);
    }

    RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject);
    try {
        UnicastRemoteObject.exportObject(holder, 0);
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }

    Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject);

    MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model,
            MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles);
    return new MavenServerExecutionResult(data, problems, unresolvedArtifacts);
}

From source file:org.sourcepit.maven.dependency.model.aether.AetherDependencyModelResolver.java

License:Apache License

private DependencyModel resolve(@NotNull MavenProject project, boolean resolveRoot,
        ArtifactAttachmentFactory attachmentFactory) throws DependencyResolutionException {
    project = filterUnconnectableRepos(project);

    final DependencyModelBuilder modelBuilder = new DependencyModelBuilder(attachmentFactory);

    final RepositorySystemSession repositorySession = newRepositorySystemSession(project, resolveRoot,
            modelBuilder);//ww  w .j a va2s  .  co m

    final DefaultDependencyResolutionRequest resolutionRequest = new DefaultDependencyResolutionRequest();
    resolutionRequest.setMavenProject(project);
    resolutionRequest.setRepositorySession(repositorySession);
    resolutionRequest.setResolutionFilter(new ScopeDependencyFilter("test"));

    DependencyResolutionResult resolutionResult;
    try {
        resolutionResult = dependenciesResolver.resolve(resolutionRequest);
    } catch (DependencyResolutionException e) {
        resolutionResult = e.getResult();
    }

    final Collection<org.eclipse.aether.artifact.Artifact> resolvedAttachments;
    try {
        resolvedAttachments = attachmentResolver.resolveAttachments(repositorySession,
                resolutionResult.getDependencyGraph());
    } catch (ArtifactResolutionException e) {
        throw pipe(e);
    }

    final DependencyModel model = modelBuilder.getDependencyModel();

    applyResolvedArtifacts(project, resolutionResult, resolvedAttachments, model);

    final DependencyNode dependencyGraph = resolutionResult.getDependencyGraph();
    if (resolveRoot) {
        addNodeArtifact(model.getRootArtifacts(), model, dependencyGraph);
    } else {
        for (DependencyNode dependencyNode : dependencyGraph.getChildren()) {
            addNodeArtifact(model.getRootArtifacts(), model, dependencyNode);
        }
    }

    return model;
}

From source file:org.sourcepit.maven.dependency.model.DependencyTreeBuilder.java

License:Apache License

public DependencyNode build(DependencyTreeBuilderRequest request)
        throws ProjectBuildingException, DependencyResolutionException {
    DependencyResolutionResult resolutionResult = resolver.resolve(buildDependencyResolutionRequest(request));

    return resolutionResult.getDependencyGraph();
}