List of usage examples for org.apache.maven.project ProjectDependenciesResolver resolve
DependencyResolutionResult resolve(DependencyResolutionRequest request) throws DependencyResolutionException;
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);//from w w w . j av a 2 s . c o m 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:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java
License:Apache License
/** * copied from {@link DefaultProjectBuilder#resolveDependencies(MavenProject, RepositorySystemSession)} *///ww w. j a v a 2s . com 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.jvnet.hudson.plugins.mavendepsupdate.MavenUpdateChecker.java
License:Apache License
public MavenUpdateCheckerResult call() throws IOException { ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try {//from w w w.j a v a 2s .com PluginFirstClassLoader pluginFirstClassLoader = getPluginFirstClassLoader(); Thread.currentThread().setContextClassLoader(pluginFirstClassLoader); String classLoaderName = getClass().getClassLoader().toString(); mavenUpdateCheckerResult.addDebugLine(classLoaderName); PlexusContainer plexusContainer = getPlexusContainer(pluginFirstClassLoader); Thread.currentThread().setContextClassLoader(plexusContainer.getContainerRealm()); mavenUpdateCheckerResult.addDebugLine("ok for new DefaultPlexusContainer( conf ) "); mavenUpdateCheckerResult.addDebugLine("Thread.currentThread().getContextClassLoader() " + Thread.currentThread().getContextClassLoader()); mavenUpdateCheckerResult.addDebugLine("Thread.currentThread().getContextClassLoader().parent " + (Thread.currentThread().getContextClassLoader().getParent() == null ? "null" : Thread.currentThread().getContextClassLoader().getParent().toString())); mavenUpdateCheckerResult.addDebugLine( "classLoader urls " + Arrays.asList(plexusContainer.getContainerRealm().getURLs())); ProjectBuilder projectBuilder = plexusContainer.lookup(ProjectBuilder.class); // FIXME load userProperties from the job Properties userProperties = this.userProperties == null ? new Properties() : this.userProperties; userProperties.put("java.home", jdkHome); ProjectBuildingRequest projectBuildingRequest = getProjectBuildingRequest(userProperties, plexusContainer); // check plugins too projectBuildingRequest.setProcessPlugins(true); // force snapshots update projectBuildingRequest.setResolveDependencies(true); List<ProjectBuildingResult> projectBuildingResults = projectBuilder .build(Arrays.asList(new File(rootPomPath)), true, projectBuildingRequest); ProjectDependenciesResolver projectDependenciesResolver = plexusContainer .lookup(ProjectDependenciesResolver.class); List<MavenProject> mavenProjects = new ArrayList<MavenProject>(projectBuildingResults.size()); for (ProjectBuildingResult projectBuildingResult : projectBuildingResults) { mavenProjects.add(projectBuildingResult.getProject()); } ProjectSorter projectSorter = new ProjectSorter(mavenProjects); // use the projects reactor model as a workspaceReader // if reactors are not available remotely dependencies resolve will failed // due to artifact not found final Map<String, MavenProject> projectMap = getProjectMap(mavenProjects); WorkspaceReader reactorRepository = new ReactorReader(projectMap); MavenRepositorySystemSession mavenRepositorySystemSession = (MavenRepositorySystemSession) projectBuildingRequest .getRepositorySession(); mavenRepositorySystemSession.setUpdatePolicy(RepositoryPolicy.UPDATE_POLICY_ALWAYS); mavenRepositorySystemSession.setWorkspaceReader(reactorRepository); MavenPluginManager mavenPluginManager = plexusContainer.lookup(MavenPluginManager.class); for (MavenProject mavenProject : projectSorter.getSortedProjects()) { LOGGER.info("resolve dependencies for project " + mavenProject.getId()); DefaultDependencyResolutionRequest dependencyResolutionRequest = new DefaultDependencyResolutionRequest( mavenProject, mavenRepositorySystemSession); try { DependencyResolutionResult dependencyResolutionResult = projectDependenciesResolver .resolve(dependencyResolutionRequest); } catch (DependencyResolutionException e) { mavenUpdateCheckerResult.addDebugLine(e.getMessage()); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); mavenUpdateCheckerResult.addDebugLine("skip:" + sw.toString()); } if (checkPlugins) { for (Plugin plugin : mavenProject.getBuildPlugins()) { // only for SNAPSHOT if (StringUtils.endsWith(plugin.getVersion(), "SNAPSHOT")) { mavenPluginManager.getPluginDescriptor(plugin, mavenProject.getRemotePluginRepositories(), mavenRepositorySystemSession); } } } } SnapshotTransfertListener snapshotTransfertListener = (SnapshotTransfertListener) projectBuildingRequest .getRepositorySession().getTransferListener(); if (snapshotTransfertListener.isSnapshotDownloaded()) { mavenUpdateCheckerResult.addFilesUpdatedNames(snapshotTransfertListener.getSnapshots()); } } catch (Exception e) { mavenUpdateCheckerResult.addDebugLine(e.getMessage()); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); mavenUpdateCheckerResult.addDebugLine("skip:" + sw.toString()); } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } return mavenUpdateCheckerResult; }