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

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

Introduction

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

Prototype

public List<ArtifactRepository> getRemoteArtifactRepositories() 

Source Link

Usage

From source file:br.com.uggeri.maven.builder.mojo.DependencyResolver.java

private void resolveArtifact(final MavenProject project, final Artifact artifact) {
    repositorySystem.resolve(createArtifactResolutionRequest(artifact, localRepository,
            project.getRemoteArtifactRepositories()));
}

From source file:com.alibaba.citrus.maven.eclipse.base.ide.AbstractIdeSupportMojo.java

License:Apache License

/**
 * Resolve project dependencies. Manual resolution is needed in order to avoid resolution of multiproject artifacts
 * (if projects will be linked each other an installed jar is not needed) and to avoid a failure when a jar is
 * missing./*w w w  . ja  va 2 s.  c om*/
 *
 * @return resolved IDE dependencies, with attached jars for non-reactor dependencies
 * @throws MojoExecutionException if dependencies can't be resolved
 */
protected IdeDependency[] doDependencyResolution() throws MojoExecutionException {
    if (ideDeps == null) {
        if (resolveDependencies) {
            MavenProject project = getProject();
            ArtifactRepository localRepo = getLocalRepository();

            List deps = getProject().getDependencies();

            // Collect the list of resolved IdeDependencies.
            List dependencies = new ArrayList();

            if (deps != null) {
                Map managedVersions = createManagedVersionMap(getArtifactFactory(), project.getId(),
                        project.getDependencyManagement());

                ArtifactResolutionResult artifactResolutionResult = null;

                try {

                    List listeners = new ArrayList();

                    if (logger.isDebugEnabled()) {
                        listeners.add(new DebugResolutionListener(logger));
                    }

                    listeners.add(new WarningResolutionListener(logger));

                    artifactResolutionResult = artifactCollector.collect(getProjectArtifacts(),
                            project.getArtifact(), managedVersions, localRepo,
                            project.getRemoteArtifactRepositories(), getArtifactMetadataSource(), null,
                            listeners);
                } catch (ArtifactResolutionException e) {
                    getLog().debug(e.getMessage(), e);
                    getLog().error(
                            Messages.getString("AbstractIdeSupportMojo.artifactresolution", new Object[] { //$NON-NLS-1$
                                    e.getGroupId(), e.getArtifactId(), e.getVersion(), e.getMessage() }));

                    // if we are here artifactResolutionResult is null, create a project without dependencies but
                    // don't fail
                    // (this could be a reactor projects, we don't want to fail everything)
                    // Causes MECLIPSE-185. Not sure if it should be handled this way??
                    return new IdeDependency[0];
                }

                // keep track of added reactor projects in order to avoid duplicates
                Set emittedReactorProjectId = new HashSet();

                for (Iterator i = artifactResolutionResult.getArtifactResolutionNodes().iterator(); i
                        .hasNext();) {

                    ResolutionNode node = (ResolutionNode) i.next();
                    int dependencyDepth = node.getDepth();
                    Artifact art = node.getArtifact();
                    // don't resolve jars for reactor projects
                    if (hasToResolveJar(art)) {
                        try {
                            artifactResolver.resolve(art, node.getRemoteRepositories(), localRepository);
                        } catch (ArtifactNotFoundException e) {
                            getLog().debug(e.getMessage(), e);
                            getLog().warn(Messages.getString("AbstractIdeSupportMojo.artifactdownload", //$NON-NLS-1$
                                    new Object[] { e.getGroupId(), e.getArtifactId(), e.getVersion(),
                                            e.getMessage() }));
                        } catch (ArtifactResolutionException e) {
                            getLog().debug(e.getMessage(), e);
                            getLog().warn(Messages.getString("AbstractIdeSupportMojo.artifactresolution",
                                    new Object[] { //$NON-NLS-1$
                                            e.getGroupId(), e.getArtifactId(), e.getVersion(),
                                            e.getMessage() }));
                        }
                    }

                    boolean includeArtifact = true;
                    if (getExcludes() != null) {
                        String artifactFullId = art.getGroupId() + ":" + art.getArtifactId();
                        if (getExcludes().contains(artifactFullId)) {
                            getLog().info("excluded: " + artifactFullId);
                            includeArtifact = false;
                        }
                    }

                    if (includeArtifact && (!(getUseProjectReferences() && isAvailableAsAReactorProject(art))
                            || emittedReactorProjectId.add(art.getGroupId() + '-' + art.getArtifactId()))) {

                        // the following doesn't work: art.getArtifactHandler().getPackaging() always returns "jar"
                        // also
                        // if the packaging specified in pom.xml is different.

                        // osgi-bundle packaging is provided by the felix osgi plugin
                        // eclipse-plugin packaging is provided by this eclipse plugin
                        // String packaging = art.getArtifactHandler().getPackaging();
                        // boolean isOsgiBundle = "osgi-bundle".equals( packaging ) || "eclipse-plugin".equals(
                        // packaging );

                        // we need to check the manifest, if "Bundle-SymbolicName" is there the artifact can be
                        // considered
                        // an osgi bundle
                        boolean isOsgiBundle = false;
                        String osgiSymbolicName = null;
                        if (art.getFile() != null) {
                            JarFile jarFile = null;
                            try {
                                jarFile = new JarFile(art.getFile(), false, ZipFile.OPEN_READ);

                                Manifest manifest = jarFile.getManifest();
                                if (manifest != null) {
                                    osgiSymbolicName = manifest.getMainAttributes()
                                            .getValue(new Attributes.Name("Bundle-SymbolicName"));
                                }
                            } catch (IOException e) {
                                getLog().info("Unable to read jar manifest from " + art.getFile());
                            } finally {
                                if (jarFile != null) {
                                    try {
                                        jarFile.close();
                                    } catch (IOException e) {
                                        // ignore
                                    }
                                }
                            }
                        }

                        isOsgiBundle = osgiSymbolicName != null;

                        IdeDependency dep = new IdeDependency(art.getGroupId(), art.getArtifactId(),
                                art.getVersion(), art.getClassifier(), useProjectReference(art),
                                Artifact.SCOPE_TEST.equals(art.getScope()),
                                Artifact.SCOPE_SYSTEM.equals(art.getScope()),
                                Artifact.SCOPE_PROVIDED.equals(art.getScope()),
                                art.getArtifactHandler().isAddedToClasspath(), art.getFile(), art.getType(),
                                isOsgiBundle, osgiSymbolicName, dependencyDepth, getProjectNameForArifact(art));
                        // no duplicate entries allowed. System paths can cause this problem.
                        if (!dependencies.contains(dep)) {
                            dependencies.add(dep);
                        }
                    }
                }

                // @todo a final report with the list of
                // missingArtifacts?

            }

            ideDeps = (IdeDependency[]) dependencies.toArray(new IdeDependency[dependencies.size()]);
        } else {
            ideDeps = new IdeDependency[0];
        }
    }

    return ideDeps;
}

From source file:com.edugility.maven.Artifacts.java

License:Open Source License

/**
 * Returns an unmodifiable, non-{@code null} {@link Collection} of
 * {@link Artifact}s, each element of which is a non-{@code null}
 * {@link Artifact} that represents either the supplied {@link
 * MavenProject} itself or a {@linkplain MavenProject#getArtifacts()
 * dependency of it}.//from w ww. j  ava2  s  .  com
 *
 * <p>The returned {@link Artifact} {@link Collection} will be
 * sorted in topological order, from an {@link Artifact} with no
 * dependencies as the first element, to the {@link Artifact}
 * representing the {@link MavenProject} itself as the last.</p>
 *
 * <p>All {@link Artifact}s that are not {@linkplain
 * Object#equals(Object) equal to} the return value of {@link
 * MavenProject#getArtifact() project.getArtifact()} will be
 * {@linkplain ArtifactResolver#resolve(ArtifactResolutionRequest)
 * resolved} if they are not already {@linkplain
 * Artifact#isResolved() resolved}.  No guarantee of {@linkplain
 * Artifact#isResolved() resolution status} is made of the
 * {@linkplain MavenProject#getArtifact() project
 * <code>Artifact</code>}, which in normal&mdash;possibly
 * all?&mdash;cases will be unresolved.</p>
 *
 * @param project the {@link MavenProject} for which resolved {@link
 * Artifact}s should be returned; must not be {@code null}
 *
 * @param dependencyGraphBuilder the {@link DependencyGraphBuilder}
 * instance that will calculate the dependency graph whose postorder
 * traversal will yield the {@link Artifact}s to be resolved; must
 * not be {@code null}
 *
 * @param filter an {@link ArtifactFilter} used during {@linkplain
 * DependencyGraphBuilder#buildDependencyGraph(MavenProject,
 * ArtifactFilter) dependency graph assembly}; may be {@code null}
 *
 * @param resolver an {@link ArtifactResolver} that will use the <a
 * href="http://maven.apache.org/ref/3.0.5/maven-compat/apidocs/src-html/org/apache/maven/artifact/resolver/DefaultArtifactResolver.html#line.335">Maven
 * 3.0.5 <code>Artifact</code> resolution algorithm</a> to resolve
 * {@link Artifact}s returned by the {@link
 * DependencyGraphBuilder#buildDependencyGraph(MavenProject,
 * ArtifactFilter)} method; must not be {@code null}
 *
 * @param localRepository an {@link ArtifactRepository} representing
 * the local Maven repository in effect; may be {@code null}
 *
 * @return a non-{@code null}, {@linkplain
 * Collections#unmodifiableCollection(Collection) unmodifiable}
 * {@link Collection} of non-{@code null} {@link Artifact} instances
 *
 * @exception IllegalArgumentException if {@code project}, {@code
 * dependencyGraphBuilder} or {@code resolver} is {@code null}
 *
 * @exception ArtifactResolutionException if there were problems
 * {@linkplain ArtifactResolver#resolve(ArtifactResolutionRequest)
 * resolving} {@link Artifact} instances
 *
 * @exception DependencyGraphBuilderException if there were problems
 * {@linkplain
 * DependencyGraphBuilder#buildDependencyGraph(MavenProject,
 * ArtifactFilter) building the dependency graph}
 *
 * @see ArtifactResolver#resolve(ArtifactResolutionRequest)
 *
 * @see DependencyGraphBuilder#buildDependencyGraph(MavenProject,
 * ArtifactFilter)
 */
public Collection<? extends Artifact> getArtifactsInTopologicalOrder(final MavenProject project,
        final DependencyGraphBuilder dependencyGraphBuilder, final ArtifactFilter filter,
        final ArtifactResolver resolver, final ArtifactRepository localRepository)
        throws DependencyGraphBuilderException, ArtifactResolutionException {
    final Logger logger = this.getLogger();
    if (logger != null && logger.isLoggable(Level.FINER)) {
        logger.entering(this.getClass().getName(), "getArtifactsInTopologicalOrder",
                new Object[] { project, dependencyGraphBuilder, filter, resolver, localRepository });
    }
    if (project == null) {
        throw new IllegalArgumentException("project", new NullPointerException("project"));
    }
    if (dependencyGraphBuilder == null) {
        throw new IllegalArgumentException("dependencyGraphBuilder",
                new NullPointerException("dependencyGraphBuilder"));
    }
    if (resolver == null) {
        throw new IllegalArgumentException("resolver", new NullPointerException("resolver"));
    }

    List<Artifact> returnValue = null;

    final DependencyNode projectNode = dependencyGraphBuilder.buildDependencyGraph(project, filter);
    assert projectNode != null;
    final CollectingDependencyNodeVisitor visitor = new CollectingDependencyNodeVisitor();
    projectNode.accept(visitor);
    final Collection<? extends DependencyNode> nodes = visitor.getNodes();

    if (nodes == null || nodes.isEmpty()) {
        if (logger != null && logger.isLoggable(Level.FINE)) {
            logger.logp(Level.FINE, this.getClass().getName(), "getArtifactsInTopologicalOrder",
                    "No dependency nodes encountered");
        }

    } else {
        final Artifact projectArtifact = project.getArtifact();

        returnValue = new ArrayList<Artifact>();

        for (final DependencyNode node : nodes) {
            if (node != null) {
                Artifact artifact = node.getArtifact();
                if (artifact != null) {

                    if (!artifact.isResolved()) {
                        if (logger != null && logger.isLoggable(Level.FINE)) {
                            logger.logp(Level.FINE, this.getClass().getName(), "getArtifactsInTopologicalOrder",
                                    "Artifact {0} is unresolved", artifact);
                        }

                        if (artifact.equals(projectArtifact)) {
                            // First see if the artifact is the project artifact.
                            // If so, then it by definition won't be able to be
                            // resolved, because it's being built.
                            if (logger != null && logger.isLoggable(Level.FINE)) {
                                logger.logp(Level.FINE, this.getClass().getName(),
                                        "getArtifactsInTopologicalOrder",
                                        "Artifact {0} resolved to project artifact: {1}",
                                        new Object[] { artifact, projectArtifact });
                            }
                            artifact = projectArtifact;

                        } else {
                            // See if the project's associated artifact map
                            // contains a resolved version of this artifact.  The
                            // artifact map contains all transitive dependency
                            // artifacts of the project.  Each artifact in the map
                            // is guaranteed to be resolved.
                            @SuppressWarnings("unchecked")
                            final Map<String, Artifact> artifactMap = project.getArtifactMap();
                            if (artifactMap != null && !artifactMap.isEmpty()) {
                                final Artifact mapArtifact = artifactMap
                                        .get(new StringBuilder(artifact.getGroupId()).append(":")
                                                .append(artifact.getArtifactId()).toString());
                                if (mapArtifact != null) {
                                    if (logger != null && logger.isLoggable(Level.FINE)) {
                                        logger.logp(Level.FINE, this.getClass().getName(),
                                                "getArtifactsInTopologicalOrder",
                                                "Artifact {0} resolved from project artifact map: {1}",
                                                new Object[] { artifact, mapArtifact });
                                    }
                                    artifact = mapArtifact;
                                }
                            }

                            if (!artifact.isResolved()) {
                                // Finally, perform manual artifact resolution.
                                final ArtifactResolutionRequest request = new ArtifactResolutionRequest();
                                request.setArtifact(artifact);
                                request.setLocalRepository(localRepository);
                                @SuppressWarnings("unchecked")
                                final List<ArtifactRepository> remoteRepositories = project
                                        .getRemoteArtifactRepositories();
                                request.setRemoteRepositories(remoteRepositories);

                                if (logger != null && logger.isLoggable(Level.FINE)) {
                                    logger.logp(Level.FINE, this.getClass().getName(),
                                            "getArtifactsInTopologicalOrder",
                                            "Resolving artifact {0} using ArtifactResolutionRequest {1}",
                                            new Object[] { artifact, request });
                                }

                                final ArtifactResolutionResult result = resolver.resolve(request);
                                if (result == null || !result.isSuccess()) {
                                    this.handleArtifactResolutionError(request, result);
                                } else {
                                    @SuppressWarnings("unchecked")
                                    final Collection<? extends Artifact> resolvedArtifacts = (Set<? extends Artifact>) result
                                            .getArtifacts();
                                    if (resolvedArtifacts == null || resolvedArtifacts.isEmpty()) {
                                        if (logger != null && logger.isLoggable(Level.WARNING)) {
                                            logger.logp(Level.WARNING, this.getClass().getName(),
                                                    "getArtifactsInTopologicalOrder",
                                                    "Artifact resolution failed silently for artifact {0}",
                                                    artifact);
                                        }
                                    } else {
                                        final Artifact resolvedArtifact = resolvedArtifacts.iterator().next();
                                        if (resolvedArtifact != null) {
                                            assert resolvedArtifact.isResolved();
                                            artifact = resolvedArtifact;
                                        } else if (logger != null && logger.isLoggable(Level.WARNING)) {
                                            logger.logp(Level.WARNING, this.getClass().getName(),
                                                    "getArtifactsInTopologicalOrder",
                                                    "Artifact resolution failed silently for artifact {0}",
                                                    artifact);
                                        }
                                    }
                                }
                            }

                        }
                    }

                    if (artifact != null) {
                        returnValue.add(artifact);
                    }
                }
            }
        }
        if (!returnValue.isEmpty()) {
            Collections.reverse(returnValue);
            Collections.sort(returnValue, scopeComparator);
        }
    }
    if (returnValue == null) {
        returnValue = Collections.emptyList();
    } else {
        returnValue = Collections.unmodifiableList(returnValue);
    }
    if (logger != null && logger.isLoggable(Level.FINER)) {
        logger.exiting(this.getClass().getName(), "getArtifactsInTopologicalOrder", returnValue);
    }
    return returnValue;
}

From source file:com.github.zhve.ideaplugin.ArtifactDependencyResolver.java

License:Apache License

private void tryResolve(MavenProject project, Set<Artifact> reactorArtifacts, List<Artifact> remoteData,
        List<Artifact> reactorData, List<Artifact> remoteUnresolvedList) {
    // search//from w w w  . j  a  v  a 2s. c  om
    ArtifactResolutionResult resolutionResult;
    log.info("Before:");
    for (Artifact a : remoteUnresolvedList)
        log.info("  " + a.getId() + ":" + a.getScope());
    log.info("");
    try {
        resolutionResult = artifactResolver.resolveTransitively(
                new LinkedHashSet<Artifact>(remoteUnresolvedList), project.getArtifact(),
                project.getManagedVersionMap(), localRepository, project.getRemoteArtifactRepositories(),
                artifactMetadataSource);
        // save search result
        log.info("After:");
        for (Object resolutionNode : resolutionResult.getArtifactResolutionNodes()) {
            Artifact art = ((ResolutionNode) resolutionNode).getArtifact();
            if (reactorArtifacts.contains(art)) {
                if (!reactorData.contains(art)) {
                    reactorData.add(art);
                    log.info("R " + art.getId() + ":" + art.getScope());
                } else {
                    log.info("D " + art.getId() + ":" + art.getScope());
                }
            } else {
                log.info("  " + art.getId() + ":" + art.getScope());
                remoteData.add(art);
            }
        }
        // clear unresolved
        remoteUnresolvedList.clear();
    } catch (ArtifactResolutionException e) {
        log.error(e.getMessage());
        remoteData.addAll(remoteUnresolvedList);
    } catch (ArtifactNotFoundException e) {
        throw new RuntimeException(e.getMessage(), e);
    }
}

From source file:com.google.gdt.eclipse.maven.configurators.MavenProjectConfigurator.java

License:Open Source License

private void resolveGwtDevJar(MavenProject mavenProject, IProgressMonitor monitor, String gwtVersion) {
    // Check that the pom.xml has GWT dependencies
    if (gwtVersion != null && !StringUtilities.isEmpty(gwtVersion)) {
        try {/*from   w  w w.java  2  s.  c o  m*/
            // Download and install the gwt-dev.jar into the local repository.
            maven.resolve(GWTMavenRuntime.MAVEN_GWT_GROUP_ID, GWTMavenRuntime.MAVEN_GWT_DEV_JAR_ARTIFACT_ID,
                    gwtVersion, "jar", null, mavenProject.getRemoteArtifactRepositories(), monitor);
        } catch (CoreException exception) {
            Activator.logError(
                    "MavenProjectConfigurator: Problem configuring the maven project because it could not download the "
                            + "gwt-dev.jar which is used to determine the version.",
                    exception);
        }
    }
}

From source file:com.google.gdt.eclipse.maven.e35.configurators.GoogleProjectConfigurator.java

License:Open Source License

@Override
protected void doConfigure(final MavenProject mavenProject, IProject project,
        ProjectConfigurationRequest request, final IProgressMonitor monitor) throws CoreException {

    final IMaven maven = MavenPlugin.getDefault().getMaven();

    boolean configureGaeNatureSuccess = configureNature(project, mavenProject, GaeNature.NATURE_ID, true,
            new NatureCallbackAdapter() {

                @Override//from ww w  . ja  va2 s  .  c om
                public void beforeAddingNature() {
                    try {
                        DefaultMavenExecutionRequest executionRequest = new DefaultMavenExecutionRequest();
                        executionRequest.setBaseDirectory(mavenProject.getBasedir());
                        executionRequest.setLocalRepository(maven.getLocalRepository());
                        executionRequest.setRemoteRepositories(mavenProject.getRemoteArtifactRepositories());
                        executionRequest
                                .setPluginArtifactRepositories(mavenProject.getPluginArtifactRepositories());
                        executionRequest.setPom(mavenProject.getFile());
                        executionRequest.setGoals(GAE_UNPACK_GOAL);

                        MavenExecutionResult result = maven.execute(executionRequest, monitor);
                        if (result.hasExceptions()) {
                            Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                                    "Error configuring project", result.getExceptions().get(0)));
                        }
                    } catch (CoreException e) {
                        Activator.getDefault().getLog().log(
                                new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Error configuring project", e));
                    }
                }
            }, monitor);

    boolean configureGWTNatureSuccess = configureNature(project, mavenProject, GWTNature.NATURE_ID, true,
            new NatureCallbackAdapter() {

                @Override
                public void beforeAddingNature() {

                    // Get the GWT version from the project pom
                    String gwtVersion = null;
                    List<Dependency> dependencies = mavenProject.getDependencies();
                    for (Dependency dependency : dependencies) {
                        if (GWTMavenRuntime.MAVEN_GWT_GROUP_ID.equals(dependency.getGroupId())
                                && (GWTMavenRuntime.MAVEN_GWT_USER_ARTIFACT_ID
                                        .equals(dependency.getArtifactId())
                                        || GWTMavenRuntime.MAVEN_GWT_SERVLET_ARTIFACT_ID
                                                .equals(dependency.getArtifactId()))) {
                            gwtVersion = dependency.getVersion();
                            break;
                        }
                    }

                    // Check that the pom.xml has GWT dependencies
                    if (!StringUtilities.isEmpty(gwtVersion)) {
                        try {
                            /*
                             * Download and install the gwt-dev.jar into the local
                             * repository.
                             */
                            maven.resolve(GWTMavenRuntime.MAVEN_GWT_GROUP_ID,
                                    GWTMavenRuntime.MAVEN_GWT_DEV_JAR_ARTIFACT_ID, gwtVersion, "jar", null,
                                    mavenProject.getRemoteArtifactRepositories(), monitor);
                        } catch (CoreException e) {
                            Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                                    "Error configuring project", e));
                        }
                    }
                }
            }, monitor);

    if (configureGWTNatureSuccess || configureGaeNatureSuccess) {
        try {
            // Add GWT Web Application configuration parameters
            WebAppProjectProperties.setWarSrcDir(project, new Path("src/main/webapp"));
            WebAppProjectProperties.setWarSrcDirIsOutput(project, false);

            String artifactId = mavenProject.getArtifactId();
            String version = mavenProject.getVersion();
            IPath location = (project.getRawLocation() != null ? project.getRawLocation()
                    : project.getLocation());
            if (location != null && artifactId != null && version != null) {
                WebAppProjectProperties.setLastUsedWarOutLocation(project,
                        location.append("target").append(artifactId + "-" + version));
            }
        } catch (BackingStoreException be) {
            Activator.getDefault().getLog()
                    .log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Error configuring project", be));
        }
    }
}

From source file:com.microfocus.plugins.attribution.datamodel.services.impl.DependenciesServiceImpl.java

@Override
public List<ProjectDependency> getProjectDependencies(MavenProject project, Settings settings,
        ArtifactRepository localRepository, DependencyOverride[] dependencyOverrides) {
    List<ProjectDependency> projectDependencies = new ArrayList<ProjectDependency>();
    Map<String, DependencyOverride> projectDependencyOverrides = new HashMap<String, DependencyOverride>();

    if (dependencyOverrides != null) {
        for (DependencyOverride dependencyOverride : dependencyOverrides) {
            projectDependencyOverrides.put(dependencyOverride.getForDependency(), dependencyOverride);
        }/*from  ww  w  .  j  a v  a 2 s  . c o  m*/
    }

    RepositoryUtils repoUtils = new RepositoryUtils(log, wagonManager, settings, mavenProjectBuilder, factory,
            resolver, project.getRemoteArtifactRepositories(), project.getPluginArtifactRepositories(),
            localRepository, repositoryMetadataManager);
    DependencyNode dependencyNode = resolveProject(project);
    Dependencies dependencies = new Dependencies(project, dependencyNode, classesAnalyzer);

    try {
        List<Artifact> alldeps = dependencies.getAllDependencies();

        if (log.isInfoEnabled()) {
            System.out.print("[INFO] Reading dependency information from available repositories.");
        }

        for (Artifact artifact : alldeps) {
            MavenProject pluginProject = mavenProjectBuilder.buildFromRepository(artifact,
                    project.getRemoteArtifactRepositories(), localRepository);
            MavenProject artifactProject = repoUtils.getMavenProjectFromRepository(artifact);

            String projectUrl = pluginProject.getUrl();
            List<ProjectDependencyLicense> licenses = DependencyUtils
                    .toProjectLicenses(artifactProject.getLicenses());
            List<String> downloadUrls = new ArrayList<String>();

            for (ArtifactRepository artifactRepository : artifactProject.getRemoteArtifactRepositories()) {
                String downloadUrl = repoUtils.getDependencyUrlFromRepository(artifact, artifactRepository);
                if (dependencyExistsInRepo(repoUtils, artifactRepository, artifact)) {
                    downloadUrls.add(downloadUrl);
                }

                if (log.isInfoEnabled()) {
                    System.out.print('.');
                }
            }

            DependencyOverride dependencyOverride = projectDependencyOverrides
                    .get(artifact.getGroupId() + ":" + artifact.getArtifactId());
            if (dependencyOverride != null) {
                if (StringUtils.isNotBlank(dependencyOverride.getProjectUrl())) {
                    projectUrl = dependencyOverride.getProjectUrl();
                }

                if (StringUtils.isNotBlank(dependencyOverride.getDownloadUrl())) {
                    downloadUrls = Arrays.asList(dependencyOverride.getDownloadUrl());
                }

                if (dependencyOverride.getLicense() != null) {
                    licenses = Arrays.asList(dependencyOverride.getLicense());
                }
            }

            String name = StringUtils.defaultIfBlank(artifactProject.getName(), artifact.getArtifactId());

            ProjectDependency dependency = new ProjectDependency();
            dependency.setGroupId(artifact.getGroupId());
            dependency.setArtifactId(artifact.getArtifactId());
            dependency.setVersion(artifact.getVersion());
            dependency.setProjectUrl(projectUrl);
            dependency.setType(artifact.getType());
            dependency.setLicenses(licenses);
            dependency.setName(name);
            dependency.setDownloadUrls(downloadUrls);

            projectDependencies.add(dependency);
        }

        System.out.println(); // End with a carriage return, so normal logging can continue
    } catch (ProjectBuildingException e) {
        throw new DataModelException("An error occurred building the list of project dependencies.", e);
    }

    Collections.sort(projectDependencies, byName());

    return projectDependencies;
}

From source file:com.ning.maven.plugins.dependencyversionscheck.AbstractDependencyVersionsMojo.java

License:Apache License

/**
 * Returns a Set of artifacts based off the given project. Artifacts can be filtered and optional dependencies can be excluded.
 *
 * It would be awesome if this method would also use the DependencyTreeBuilder which seems to yield better results (and is much closer to the actual compile tree in some cases)
 * than the artifactResolver. However, due to MNG-3236 the artifact filter is not applied when resolving dependencies and this method relies on the artifact filter to get
 * the scoping right. Well, maybe in maven 3.0 this will be better. Or different. Whatever comes first.
 *//*from   w  w w.  j  a  va2  s .  c o  m*/
private Set resolveDependenciesInItsOwnScope(final MavenProject project, final ArtifactFilter filter,
        final boolean includeOptional)
        throws InvalidDependencyVersionException, ArtifactResolutionException, ArtifactNotFoundException {
    Set dependencyArtifacts = MavenMetadataSource.createArtifacts(artifactFactory, project.getDependencies(),
            null, filter, null);

    ArtifactResolutionResult result = artifactResolver.resolveTransitively(dependencyArtifacts,
            project.getArtifact(), Collections.EMPTY_MAP, localRepository,
            project.getRemoteArtifactRepositories(), artifactMetadataSource,
            new ArtifactOptionalFilter(includeOptional));

    return result.getArtifacts();
}

From source file:com.redhat.rcm.maven.plugin.buildmetadata.util.ReportUtils.java

License:Apache License

/**
 * Returns a file reference to the default skin useful for rendering
 * standalone run reports.//  w w w  .j  a v  a 2  s.  com
 * <p>
 * Stolen from the changes plugin.
 * </p>
 *
 * @param project the project of the plugin that calls this method.
 * @param localRepository a reference to the local repository to reference to.
 * @param resolver to resolve the skin artifact.
 * @param factory to resolve dependencies.
 * @return a file reference to the default skin.
 * @throws MojoExecutionException if the skin artifact cannot be resolved.
 */
public static File getSkinArtifactFile(final MavenProject project, final ArtifactRepository localRepository,
        final ArtifactResolver resolver, final ArtifactFactory factory) throws MojoExecutionException {
    final Skin skin = Skin.getDefaultSkin();
    final String version = determineVersion(skin);
    try {
        final VersionRange versionSpec = VersionRange.createFromVersionSpec(version);
        final Artifact artifact = factory.createDependencyArtifact(skin.getGroupId(), skin.getArtifactId(),
                versionSpec, "jar", null, null);
        resolver.resolve(artifact, project.getRemoteArtifactRepositories(), localRepository);

        return artifact.getFile();
    } catch (final InvalidVersionSpecificationException e) {
        throw new MojoExecutionException("The skin version '" + version + "' is not valid: " + e.getMessage(),
                e);
    } catch (final ArtifactResolutionException e) {
        throw new MojoExecutionException("Unable to find skin", e);
    } catch (final ArtifactNotFoundException e) {
        throw new MojoExecutionException("The skin does not exist: " + e.getMessage(), e);
    }
}

From source file:me.gladwell.eclipse.m2e.android.configuration.ClasspathAttacher.java

License:Open Source License

public Iterable<IClasspathEntry> attach(IJavaProject project, Iterable<IClasspathEntry> classpath) {
    List<IClasspathEntry> processed = new ArrayList<IClasspathEntry>();
    try {// ww w.j a  va  2  s .c o m
        IMavenProjectFacade mavenProjectFacade = registry.getProject(project.getProject());

        if (mavenProjectFacade == null) {
            warn("maven project not yet registered for " + project);
            return processed;
        }

        MavenProject mavenProject = mavenProjectFacade.getMavenProject(new NullProgressMonitor());
        MavenAndroidProject androidProject = factory.createAndroidProject(mavenProject);
        List<ArtifactRepository> repositories = mavenProject.getRemoteArtifactRepositories();

        for (IClasspathEntry entry : classpath) {
            try {
                if (CPE_LIBRARY == entry.getEntryKind() && !attacher.isAttached(entry)) {
                    Dependency dependency = findDependency(entry, androidProject.getNonRuntimeDependencies());
                    if (!maven.isUnavailable(dependency.getGroup(), dependency.getName(),
                            dependency.getVersion(), "jar", classifier, repositories)) {
                        Artifact docs = maven.resolve(dependency.getGroup(), dependency.getName(),
                                dependency.getVersion(), "jar", classifier, repositories,
                                new NullProgressMonitor());

                        processed.add(attacher.attach(entry, docs));
                    } else {
                        debug(classifier + " unavailable for classpath entry=[" + entry + "]");
                        processed.add(entry);
                    }
                } else {
                    processed.add(entry);
                }

            } catch (Exception e) {
                debug("could not resolve " + classifier + " for classpath entry=[" + entry + "]", e);
                processed.add(entry);
            }
        }
    } catch (CoreException e) {
        throw new ProjectConfigurationException(e);
    }
    return processed;
}