Example usage for org.apache.maven.execution MavenExecutionRequest setRemoteRepositories

List of usage examples for org.apache.maven.execution MavenExecutionRequest setRemoteRepositories

Introduction

In this page you can find the example usage for org.apache.maven.execution MavenExecutionRequest setRemoteRepositories.

Prototype

MavenExecutionRequest setRemoteRepositories(List<ArtifactRepository> repositories);

Source Link

Document

Set a new list of remote repositories to use the execution request.

Usage

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

License:Apache License

private Artifact resolve(@Nonnull final Artifact artifact, @Nonnull final List<ArtifactRepository> repos)
        throws ArtifactResolutionException, ArtifactNotFoundException {

    MavenExecutionRequest request = new DefaultMavenExecutionRequest();
    request.setRemoteRepositories(repos);
    try {//from   www .j ava 2  s.  c o  m
        getComponent(MavenExecutionRequestPopulator.class).populateFromSettings(request, myMavenSettings);
        getComponent(MavenExecutionRequestPopulator.class).populateDefaults(request);
    } catch (MavenExecutionRequestPopulationException e) {
        throw new RuntimeException(e);
    }

    getComponent(ArtifactResolver.class).resolve(artifact, request.getRemoteRepositories(), myLocalRepository);
    return artifact;
}

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

License:Apache License

private Artifact resolve(@Nonnull final Artifact artifact, @Nonnull final List<ArtifactRepository> repos)
        throws ArtifactResolutionException, ArtifactNotFoundException, RemoteException,
        org.eclipse.aether.resolution.ArtifactResolutionException {

    final String mavenVersion = getMavenVersion();
    // org.eclipse.aether.RepositorySystem.newResolutionRepositories() method doesn't exist in aether-api-0.9.0.M2.jar used before maven 3.2.5
    // see https://youtrack.jetbrains.com/issue/IDEA-140208 for details
    if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING
            || MavenStringUtil.compareVersionNumbers(mavenVersion, "3.2.5") < 0) {
        MavenExecutionRequest request = new DefaultMavenExecutionRequest();
        request.setRemoteRepositories(repos);
        try {/*from  w  w w .  jav a  2  s .co m*/
            getComponent(MavenExecutionRequestPopulator.class).populateFromSettings(request, myMavenSettings);
            getComponent(MavenExecutionRequestPopulator.class).populateDefaults(request);
        } catch (MavenExecutionRequestPopulationException e) {
            throw new RuntimeException(e);
        }

        getComponent(ArtifactResolver.class).resolve(artifact, request.getRemoteRepositories(),
                myLocalRepository);
        return artifact;
    } else {
        final MavenExecutionRequest request = createRequest(null, Collections.<String>emptyList(),
                Collections.<String>emptyList(), Collections.<String>emptyList());
        for (ArtifactRepository artifactRepository : repos) {
            request.addRemoteRepository(artifactRepository);
        }

        DefaultMaven maven = (DefaultMaven) getComponent(Maven.class);
        RepositorySystemSession repositorySystemSession = maven.newRepositorySession(request);

        final org.eclipse.aether.impl.ArtifactResolver artifactResolver = getComponent(
                org.eclipse.aether.impl.ArtifactResolver.class);
        final MyLoggerFactory loggerFactory = new MyLoggerFactory();
        if (artifactResolver instanceof DefaultArtifactResolver) {
            ((DefaultArtifactResolver) artifactResolver).setLoggerFactory(loggerFactory);
        }

        final org.eclipse.aether.RepositorySystem repositorySystem = getComponent(
                org.eclipse.aether.RepositorySystem.class);
        if (repositorySystem instanceof DefaultRepositorySystem) {
            ((DefaultRepositorySystem) repositorySystem).setLoggerFactory(loggerFactory);
        }

        List<RemoteRepository> repositories = RepositoryUtils.toRepos(request.getRemoteRepositories());
        repositories = repositorySystem.newResolutionRepositories(repositorySystemSession, repositories);

        final ArtifactResult artifactResult = repositorySystem.resolveArtifact(repositorySystemSession,
                new ArtifactRequest(RepositoryUtils.toArtifact(artifact), repositories, null));

        return RepositoryUtils.toArtifact(artifactResult.getArtifact());
    }
}