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

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

Introduction

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

Prototype

public List<RemoteRepository> getRemoteProjectRepositories() 

Source Link

Usage

From source file:com.inetpsa.seed.plugin.components.ArtifactResolver.java

License:Open Source License

public String getHighestVersion(MavenProject mavenProject, String groupId, String artifactId,
        boolean allowSnapshots) {
    RepositorySystemSession session = mavenProject.getProjectBuildingRequest().getRepositorySession();

    VersionRangeRequest rangeRequest = new VersionRangeRequest();
    rangeRequest.setArtifact(new DefaultArtifact(groupId, artifactId, null, "[0,)"));
    rangeRequest.setRepositories(mavenProject.getRemoteProjectRepositories());

    VersionRangeResult rangeResult;//from www  .jav a 2s  .c  o m
    try {
        rangeResult = repositorySystem.resolveVersionRange(session, rangeRequest);
    } catch (Exception e) {
        throw new RuntimeException(String.format("Unable to resolve version for %s:%s", groupId, artifactId),
                e);
    }

    Version highestVersion = null;
    for (Version version : rangeResult.getVersions()) {
        if (highestVersion == null) {
            highestVersion = version;
        } else if ((allowSnapshots || !version.toString().endsWith("-SNAPSHOT"))
                && version.compareTo(highestVersion) > 0) {
            highestVersion = version;
        }
    }

    if (highestVersion == null) {
        throw new RuntimeException(String.format("No version found for artifact %s:%s", groupId, artifactId));
    }

    return highestVersion.toString();
}

From source file:com.inetpsa.seed.plugin.components.ArtifactResolver.java

License:Open Source License

public ArtifactResult resolveArtifact(MavenProject mavenProject, String groupId, String artifactId, String type,
        String classifier, String version) throws ArtifactResolutionException {
    RepositorySystemSession session = mavenProject.getProjectBuildingRequest().getRepositorySession();
    String coordinates = groupId + ":" + artifactId;

    if (type != null && !type.isEmpty()) {
        coordinates += ":" + type;
    }//from  ww w  .j  a v  a 2s . c  o m

    if (classifier != null && !classifier.isEmpty()) {
        coordinates += ":" + classifier;
    }

    if (version != null && !version.isEmpty()) {
        coordinates += ":" + version;
    }

    return repositorySystem.resolveArtifact(session, new ArtifactRequest(new DefaultArtifact(coordinates),
            mavenProject.getRemoteProjectRepositories(), null));
}

From source file:com.jayway.maven.plugins.android.common.BuildHelper.java

License:Open Source License

public BuildHelper(RepositorySystem repoSystem, RepositorySystemSession repoSession, MavenProject project,
        Logger log) {/*from w w w  .  j  a va  2  s  .co  m*/
    this.repoSystem = repoSystem;
    this.repoSession = repoSession;
    this.projectRepos = project.getRemoteProjectRepositories();
    final File targetFolder = new File(project.getBasedir(), "target");
    this.unpackedLibsDirectory = new File(targetFolder, "unpacked-libs");
    this.log = log;
}

From source file:com.jayway.maven.plugins.android.phase_prebuild.AarMavenLifecycleParticipant.java

License:Open Source License

private Collection<Artifact> getProjectsArtifacts(MavenSession session, MavenProject project)
        throws MavenExecutionException {
    final DependencyResolver resolver = new DependencyResolver(log, repoSystem, session.getRepositorySession(),
            project.getRemoteProjectRepositories(), artifactHandler);

    try {//from  www  .  j ava 2  s .  c  om
        return resolver.getDependenciesFor(project.getArtifact());
    } catch (MojoExecutionException e) {
        throw new MavenExecutionException("Could not resolve dependencies for " + project.getArtifact(), e);
    }
}

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  .jav  a 2s  .  c om*/

    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:it.session.maven.plugin.TilesMavenLifecycleParticipant.java

License:Apache License

protected ArtifactRequest getArtifactRequestFromArtifact(Artifact tileArtifact, MavenProject mavenProject) {
    ArtifactRequest request = new ArtifactRequest();
    request.setArtifact(tileArtifact);//from   w  w w . j av  a2  s  .co  m
    request.setRepositories(mavenProject.getRemoteProjectRepositories());
    return request;
}

From source file:org.apache.karaf.tooling.features.DependencyHelperFactory.java

License:Apache License

/**
 * <p>Create a new {@link DependencyHelper} based on what has been found in {@link org.codehaus.plexus.PlexusContainer}</p>
 *
 * <p>{@code karaf-maven-plugin} depends on {@code maven-core:3.0}, so for Maven 3.0.x, it may use this API directly.
 * When using Maven 3.1.x/3.2.x, it should use reflection to invoke org.apache.maven.RepositoryUtils.toArtifact(Artifact)
 * as this method directly references specific Aether implementation.</p>
 *
 * <p>When {@code karaf-maven-plugin} switches to {@code maven-core:3.1.0+}, reflection should be use for Sonatype variant of Aether.</p>
 *
 * @param container//w ww  .j av a  2s  .com
 * @param mavenProject
 * @param mavenSession
 * @param log
 * @return
 * @throws MojoExecutionException
 */
public static DependencyHelper createDependencyHelper(PlexusContainer container, MavenProject mavenProject,
        MavenSession mavenSession, Log log) throws MojoExecutionException {
    try {
        if (container.hasComponent(org.sonatype.aether.RepositorySystem.class)) {
            org.sonatype.aether.RepositorySystem system = container
                    .lookup(org.sonatype.aether.RepositorySystem.class);
            org.sonatype.aether.RepositorySystemSession session = mavenSession.getRepositorySession();
            List<RemoteRepository> repositories = mavenProject.getRemoteProjectRepositories();
            return new Dependency30Helper(repositories, session, system);
        } else if (container.hasComponent(org.eclipse.aether.RepositorySystem.class)) {
            org.eclipse.aether.RepositorySystem system = container
                    .lookup(org.eclipse.aether.RepositorySystem.class);
            Object session;
            try {
                session = MavenSession.class.getMethod("getRepositorySession").invoke(mavenSession);
            } catch (Exception e) {
                throw new MojoExecutionException(e.getMessage(), e);
            }
            List<?> repositories = mavenProject.getRemoteProjectRepositories();
            return new Dependency31Helper(repositories, session, system);
        }
    } catch (ComponentLookupException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    }
    throw new MojoExecutionException(
            "Cannot locate either org.sonatype.aether.RepositorySystem or org.eclipse.aether.RepositorySystem");
}

From source file:org.apache.karaf.tooling.utils.DependencyHelperFactory.java

License:Apache License

/**
 * <p>Create a new {@link DependencyHelper} based on what has been found in {@link org.codehaus.plexus.PlexusContainer}</p>
 *
 * <p>{@code karaf-maven-plugin} depends on {@code maven-core:3.0}, so for Maven 3.0.x, it may use this API directly.
 * When using Maven 3.1.x/3.2.x, it should use reflection to invoke org.apache.maven.RepositoryUtils.toArtifact(Artifact)
 * as this method directly references specific Aether implementation.</p>
 *
 * <p>When {@code karaf-maven-plugin} switches to {@code maven-core:3.1.0+}, reflection should be use for Sonatype variant of Aether.</p>
 *
 * @param container/*from w  ww  . jav a  2s. c o m*/
 * @param mavenProject
 * @param mavenSession
 * @param log
 * @return
 * @throws MojoExecutionException
 */
public static DependencyHelper createDependencyHelper(PlexusContainer container, MavenProject mavenProject,
        MavenSession mavenSession, Log log) throws MojoExecutionException {
    try {
        if (container.hasComponent("org.sonatype.aether.RepositorySystem")) {
            org.sonatype.aether.RepositorySystem system = container
                    .lookup(org.sonatype.aether.RepositorySystem.class);
            org.sonatype.aether.RepositorySystemSession session = mavenSession.getRepositorySession();
            List<RemoteRepository> repositories = mavenProject.getRemoteProjectRepositories();
            return new Dependency30Helper(repositories, session, system);
        } else if (container.hasComponent("org.eclipse.aether.RepositorySystem")) {
            org.eclipse.aether.RepositorySystem system = container
                    .lookup(org.eclipse.aether.RepositorySystem.class);
            Object session;
            try {
                session = MavenSession.class.getMethod("getRepositorySession").invoke(mavenSession);
            } catch (Exception e) {
                throw new MojoExecutionException(e.getMessage(), e);
            }
            List<?> repositories = mavenProject.getRemoteProjectRepositories();
            return new Dependency31Helper(repositories, session, system);
        }
    } catch (ComponentLookupException e) {
        throw new MojoExecutionException(e.getMessage(), e);
    }
    throw new MojoExecutionException(
            "Cannot locate either org.sonatype.aether.RepositorySystem or org.eclipse.aether.RepositorySystem");
}

From source file:org.appformer.maven.integration.Aether.java

License:Apache License

private Collection<RemoteRepository> initRepositories(MavenProject mavenProject) {
    Collection<RemoteRepository> reps = new HashSet<RemoteRepository>();
    reps.add(newCentralRepository());//  www  . j a  v a 2  s.c o  m
    if (mavenProject != null) {
        reps.addAll(mavenProject.getRemoteProjectRepositories());
    }

    RemoteRepository localRepo = newLocalRepository();
    if (localRepo != null) {
        localRepository = localRepo;
    }
    return reps;
}

From source file:org.eclipse.m2e.core.embedder.MavenModelManager.java

License:Open Source License

DependencyNode readDependencyTree(RepositorySystemSession repositorySession, MavenProject mavenProject,
        String scope) throws CoreException {
    DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(repositorySession);

    DependencyGraphTransformer transformer = new ChainedDependencyGraphTransformer(
            new JavaEffectiveScopeCalculator(), new NearestVersionConflictResolver());
    session.setDependencyGraphTransformer(transformer);

    ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
    try {/* ww w. j  ava  2s.co  m*/
        Thread.currentThread().setContextClassLoader(maven.getProjectRealm(mavenProject));

        ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();

        CollectRequest request = new CollectRequest();
        request.setRequestContext("project"); //$NON-NLS-1$
        request.setRepositories(mavenProject.getRemoteProjectRepositories());

        for (org.apache.maven.model.Dependency dependency : mavenProject.getDependencies()) {
            request.addDependency(RepositoryUtils.toDependency(dependency, stereotypes));
        }

        DependencyManagement depMngt = mavenProject.getDependencyManagement();
        if (depMngt != null) {
            for (org.apache.maven.model.Dependency dependency : depMngt.getDependencies()) {
                request.addManagedDependency(RepositoryUtils.toDependency(dependency, stereotypes));
            }
        }

        DependencyNode node;
        try {
            node = MavenPluginActivator.getDefault().getRepositorySystem().collectDependencies(session, request)
                    .getRoot();
        } catch (DependencyCollectionException ex) {
            String msg = Messages.MavenModelManager_error_read;
            log.error(msg, ex);
            throw new CoreException(new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1, msg, ex));
        }

        Collection<String> scopes = new HashSet<String>();
        Collections.addAll(scopes, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_COMPILE, Artifact.SCOPE_PROVIDED,
                Artifact.SCOPE_RUNTIME, Artifact.SCOPE_TEST);
        if (Artifact.SCOPE_COMPILE.equals(scope)) {
            scopes.remove(Artifact.SCOPE_COMPILE);
            scopes.remove(Artifact.SCOPE_SYSTEM);
            scopes.remove(Artifact.SCOPE_PROVIDED);
        } else if (Artifact.SCOPE_RUNTIME.equals(scope)) {
            scopes.remove(Artifact.SCOPE_COMPILE);
            scopes.remove(Artifact.SCOPE_RUNTIME);
        } else if (Artifact.SCOPE_COMPILE_PLUS_RUNTIME.equals(scope)) {
            scopes.remove(Artifact.SCOPE_COMPILE);
            scopes.remove(Artifact.SCOPE_SYSTEM);
            scopes.remove(Artifact.SCOPE_PROVIDED);
            scopes.remove(Artifact.SCOPE_RUNTIME);
        } else {
            scopes.clear();
        }

        CloningDependencyVisitor cloner = new CloningDependencyVisitor();
        node.accept(new FilteringDependencyVisitor(cloner, new ScopeDependencyFilter(null, scopes)));
        node = cloner.getRootNode();

        return node;
    } finally {
        Thread.currentThread().setContextClassLoader(oldClassLoader);
    }
}