Example usage for org.apache.maven.project MavenProject setResolvedArtifacts

List of usage examples for org.apache.maven.project MavenProject setResolvedArtifacts

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject setResolvedArtifacts.

Prototype

public void setResolvedArtifacts(Set<Artifact> artifacts) 

Source Link

Document

Sets the transitive dependency artifacts that have been resolved/collected for this project.

Usage

From source file:org.eclipse.m2e.core.internal.embedder.MavenImpl.java

License:Open Source License

@SuppressWarnings("deprecation")
public void execute(MavenSession session, MojoExecution execution, IProgressMonitor monitor) {
    Map<MavenProject, Set<Artifact>> artifacts = new HashMap<MavenProject, Set<Artifact>>();
    Map<MavenProject, MavenProjectMutableState> snapshots = new HashMap<MavenProject, MavenProjectMutableState>();
    for (MavenProject project : session.getProjects()) {
        artifacts.put(project, new LinkedHashSet<Artifact>(project.getArtifacts()));
        snapshots.put(project, MavenProjectMutableState.takeSnapshot(project));
    }//from   w  ww  .  j a  v  a2 s  . c  o  m
    try {
        MojoExecutor mojoExecutor = lookup(MojoExecutor.class);
        DependencyContext dependencyContext = mojoExecutor.newDependencyContext(session,
                Collections.singletonList(execution));
        mojoExecutor.ensureDependenciesAreResolved(execution.getMojoDescriptor(), session, dependencyContext);
        lookup(BuildPluginManager.class).executeMojo(session, execution);
    } catch (Exception ex) {
        session.getResult().addException(ex);
    } finally {
        for (MavenProject project : session.getProjects()) {
            project.setArtifactFilter(null);
            project.setResolvedArtifacts(null);
            project.setArtifacts(artifacts.get(project));
            MavenProjectMutableState snapshot = snapshots.get(project);
            if (snapshot != null) {
                snapshot.restore(project);
            }
        }
    }
}

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  a2s. co 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;
}