List of usage examples for org.apache.maven.project MavenProject getManagedVersionMap
public Map<String, Artifact> getManagedVersionMap()
From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java
License:Apache License
@Nonnull public MavenExecutionResult doResolveProject(@Nonnull final File file, @Nonnull final List<String> activeProfiles, @Nonnull final List<String> inactiveProfiles, final List<ResolutionListener> listeners) throws RemoteException { final MavenExecutionRequest request = createRequest(file, activeProfiles, inactiveProfiles, Collections.<String>emptyList()); request.setUpdateSnapshots(myAlwaysUpdateSnapshots); final AtomicReference<MavenExecutionResult> ref = new AtomicReference<MavenExecutionResult>(); executeWithMavenSession(request, new Runnable() { @Override//from w w w .j a v a2s. c o m public void run() { try { // copied from DefaultMavenProjectBuilder.buildWithDependencies ProjectBuilder builder = getComponent(ProjectBuilder.class); CustomMaven3ModelInterpolator2 modelInterpolator = (CustomMaven3ModelInterpolator2) getComponent( ModelInterpolator.class); String savedLocalRepository = modelInterpolator.getLocalRepository(); modelInterpolator.setLocalRepository(request.getLocalRepositoryPath().getAbsolutePath()); List<ProjectBuildingResult> results; try { // Don't use build(File projectFile, ProjectBuildingRequest request) , because it don't use cache !!!!!!!! (see http://devnet.jetbrains.com/message/5500218) results = builder.build(Collections.singletonList(new File(file.getPath())), false, request.getProjectBuildingRequest()); } finally { modelInterpolator.setLocalRepository(savedLocalRepository); } ProjectBuildingResult buildingResult = results.get(0); MavenProject project = buildingResult.getProject(); RepositorySystemSession repositorySession = getComponent(LegacySupport.class) .getRepositorySession(); if (repositorySession instanceof DefaultRepositorySystemSession) { ((DefaultRepositorySystemSession) repositorySession) .setTransferListener(new Maven30TransferListenerAdapter(myCurrentIndicator)); if (myWorkspaceMap != null) { ((DefaultRepositorySystemSession) repositorySession) .setWorkspaceReader(new Maven30WorkspaceReader(myWorkspaceMap)); } } List<Exception> exceptions = new ArrayList<Exception>(); loadExtensions(project, exceptions); //Artifact projectArtifact = project.getArtifact(); //Map managedVersions = project.getManagedVersionMap(); //ArtifactMetadataSource metadataSource = getComponent(ArtifactMetadataSource.class); project.setDependencyArtifacts( project.createArtifacts(getComponent(ArtifactFactory.class), null, null)); // if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) { ArtifactResolutionRequest resolutionRequest = new ArtifactResolutionRequest(); resolutionRequest.setArtifactDependencies(project.getDependencyArtifacts()); resolutionRequest.setArtifact(project.getArtifact()); resolutionRequest.setManagedVersionMap(project.getManagedVersionMap()); resolutionRequest.setLocalRepository(myLocalRepository); resolutionRequest.setRemoteRepositories(project.getRemoteArtifactRepositories()); resolutionRequest.setListeners(listeners); resolutionRequest.setResolveRoot(false); resolutionRequest.setResolveTransitively(true); ArtifactResolver resolver = getComponent(ArtifactResolver.class); ArtifactResolutionResult result = resolver.resolve(resolutionRequest); project.setArtifacts(result.getArtifacts()); // end copied from DefaultMavenProjectBuilder.buildWithDependencies ref.set(new MavenExecutionResult(project, exceptions)); } else { final DependencyResolutionResult dependencyResolutionResult = resolveDependencies(project, repositorySession); final List<Dependency> dependencies = dependencyResolutionResult.getDependencies(); Set<Artifact> artifacts = new LinkedHashSet<Artifact>(dependencies.size()); for (Dependency dependency : dependencies) { final Artifact artifact = RepositoryUtils.toArtifact(dependency.getArtifact()); artifact.setScope(dependency.getScope()); artifact.setOptional(dependency.isOptional()); artifacts.add(artifact); resolveAsModule(artifact); } project.setArtifacts(artifacts); ref.set(new MavenExecutionResult(project, dependencyResolutionResult, exceptions)); } } catch (Exception e) { ref.set(handleException(e)); } } }); return ref.get(); }
From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java
License:Apache License
@Nonnull public MavenExecutionResult doResolveProject(@Nonnull final File file, @Nonnull final List<String> activeProfiles, @Nonnull final List<String> inactiveProfiles, final List<ResolutionListener> listeners) throws RemoteException { final MavenExecutionRequest request = createRequest(file, activeProfiles, inactiveProfiles, Collections.<String>emptyList()); request.setUpdateSnapshots(myAlwaysUpdateSnapshots); final AtomicReference<MavenExecutionResult> ref = new AtomicReference<MavenExecutionResult>(); executeWithMavenSession(request, new Runnable() { @Override//from www . j ava 2s. c o m public void run() { try { // copied from DefaultMavenProjectBuilder.buildWithDependencies ProjectBuilder builder = getComponent(ProjectBuilder.class); CustomMaven3ModelInterpolator2 modelInterpolator = (CustomMaven3ModelInterpolator2) getComponent( ModelInterpolator.class); String savedLocalRepository = modelInterpolator.getLocalRepository(); modelInterpolator.setLocalRepository(request.getLocalRepositoryPath().getAbsolutePath()); List<ProjectBuildingResult> results; try { // Don't use build(File projectFile, ProjectBuildingRequest request) , because it don't use cache !!!!!!!! (see http://devnet.jetbrains.com/message/5500218) results = builder.build(Collections.singletonList(new File(file.getPath())), false, request.getProjectBuildingRequest()); } finally { modelInterpolator.setLocalRepository(savedLocalRepository); } ProjectBuildingResult buildingResult = results.get(0); MavenProject project = buildingResult.getProject(); RepositorySystemSession repositorySession = getComponent(LegacySupport.class) .getRepositorySession(); if (repositorySession instanceof DefaultRepositorySystemSession) { ((DefaultRepositorySystemSession) repositorySession) .setTransferListener(new TransferListenerAdapter(myCurrentIndicator)); if (myWorkspaceMap != null) { ((DefaultRepositorySystemSession) repositorySession) .setWorkspaceReader(new Maven32WorkspaceReader(myWorkspaceMap)); } } List<Exception> exceptions = new ArrayList<Exception>(); loadExtensions(project, exceptions); //Artifact projectArtifact = project.getArtifact(); //Map managedVersions = project.getManagedVersionMap(); //ArtifactMetadataSource metadataSource = getComponent(ArtifactMetadataSource.class); project.setDependencyArtifacts( project.createArtifacts(getComponent(ArtifactFactory.class), null, null)); // if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) { ArtifactResolutionRequest resolutionRequest = new ArtifactResolutionRequest(); resolutionRequest.setArtifactDependencies(project.getDependencyArtifacts()); resolutionRequest.setArtifact(project.getArtifact()); resolutionRequest.setManagedVersionMap(project.getManagedVersionMap()); resolutionRequest.setLocalRepository(myLocalRepository); resolutionRequest.setRemoteRepositories(project.getRemoteArtifactRepositories()); resolutionRequest.setListeners(listeners); resolutionRequest.setResolveRoot(false); resolutionRequest.setResolveTransitively(true); ArtifactResolver resolver = getComponent(ArtifactResolver.class); ArtifactResolutionResult result = resolver.resolve(resolutionRequest); project.setArtifacts(result.getArtifacts()); // end copied from DefaultMavenProjectBuilder.buildWithDependencies ref.set(new MavenExecutionResult(project, exceptions)); } else { final DependencyResolutionResult dependencyResolutionResult = resolveDependencies(project, repositorySession); final List<Dependency> dependencies = dependencyResolutionResult.getDependencies(); Set<Artifact> artifacts = new LinkedHashSet<Artifact>(dependencies.size()); for (Dependency dependency : dependencies) { final Artifact artifact = RepositoryUtils.toArtifact(dependency.getArtifact()); artifact.setScope(dependency.getScope()); artifact.setOptional(dependency.isOptional()); artifacts.add(artifact); resolveAsModule(artifact); } project.setArtifacts(artifacts); ref.set(new MavenExecutionResult(project, dependencyResolutionResult, exceptions)); } } catch (Exception e) { ref.set(handleException(e)); } } }); return ref.get(); }
From source file:org.jetbrains.maven.embedder.MavenEmbedder.java
License:Apache License
@Nonnull public MavenExecutionResult resolveProject(@Nonnull final File file, @Nonnull final List<String> activeProfiles, @Nonnull final List<String> inactiveProfiles, List<ResolutionListener> listeners) { MavenExecutionRequest request = createRequest(file, activeProfiles, inactiveProfiles, Collections.<String>emptyList()); ProjectBuilderConfiguration config = request.getProjectBuilderConfiguration(); request.getGlobalProfileManager().loadSettingsProfiles(mySettings); ProfileManager globalProfileManager = request.getGlobalProfileManager(); globalProfileManager.loadSettingsProfiles(request.getSettings()); List<Exception> exceptions = new ArrayList<Exception>(); MavenProject project = null; try {// w ww.j a va 2 s. c o m // copied from DefaultMavenProjectBuilder.buildWithDependencies MavenProjectBuilder builder = getComponent(MavenProjectBuilder.class); project = builder.build(new File(file.getPath()), config); builder.calculateConcreteState(project, config, false); // copied from DefaultLifecycleExecutor.execute findExtensions(project); // end copied from DefaultLifecycleExecutor.execute Artifact projectArtifact = project.getArtifact(); Map managedVersions = project.getManagedVersionMap(); ArtifactMetadataSource metadataSource = getComponent(ArtifactMetadataSource.class); project.setDependencyArtifacts( project.createArtifacts(getComponent(ArtifactFactory.class), null, null)); ArtifactResolver resolver = getComponent(ArtifactResolver.class); ArtifactResolutionResult result = resolver.resolveTransitively(project.getDependencyArtifacts(), projectArtifact, managedVersions, myLocalRepository, project.getRemoteArtifactRepositories(), metadataSource, null, listeners); project.setArtifacts(result.getArtifacts()); // end copied from DefaultMavenProjectBuilder.buildWithDependencies } catch (Exception e) { return handleException(e); } return new MavenExecutionResult(project, exceptions); }
From source file:org.nuxeo.build.maven.AntBuildMojo.java
License:Open Source License
@Override public void resolveDependencyTree(Artifact artifact, ArtifactFilter filter, ResolutionListener listener) throws ArtifactResolutionException, ProjectBuildingException { MavenProject mavenProject = projectBuilder.buildFromRepository(artifact, remoteRepositories, localRepository);//from ww w. j ava 2s .c om ArtifactCollector collector = new DefaultArtifactCollector(); collector.collect(mavenProject.getDependencyArtifacts(), mavenProject.getArtifact(), mavenProject.getManagedVersionMap(), localRepository, mavenProject.getRemoteArtifactRepositories(), metadataSource, filter, Collections.singletonList(listener)); }
From source file:org.nuxeo.build.maven.EmbeddedMavenClient.java
License:Open Source License
public void resolveDependencyTree(Artifact artifact, ArtifactFilter filter, ResolutionListener listener) throws ArtifactResolutionException, ProjectBuildingException { MavenProject project = mavenProjectBuilder.buildFromRepository(artifact, getRemoteRepositories(), localRepository);/*from w w w . j ava2s .co m*/ @SuppressWarnings("rawtypes") Set dependencyArtifacts = project.getDependencyArtifacts(); if (dependencyArtifacts == null) { try { dependencyArtifacts = project.createArtifacts(artifactFactory, null, null); } catch (InvalidDependencyVersionException e) { throw new ArtifactResolutionException("Cannot set dependencies", artifact, e); } project.setDependencyArtifacts(dependencyArtifacts); } ArtifactCollector collector = new DefaultArtifactCollector(); collector.collect(dependencyArtifacts, project.getArtifact(), project.getManagedVersionMap(), localRepository, project.getRemoteArtifactRepositories(), artifactMetadataSource, filter, Collections.singletonList(listener)); }
From source file:org.sourcepit.osgifier.maven.context.MavenDependencyWalker.java
License:Apache License
private Set<Artifact> resolve(Request walkerRequest, Artifact artifact, MavenProject resolutionContext, boolean resolveRoot, List<Dependency> dependencies) { final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact);// w w w . j a va 2 s. c o m request.setResolveRoot(resolveRoot); request.setResolveTransitively(!resolveRoot); if (dependencies != null) { final Set<Artifact> artifactDependencies = new LinkedHashSet<Artifact>(); for (Dependency dependency : dependencies) { artifactDependencies.add(repositorySystem.createArtifactWithClassifier(dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), dependency.getType(), dependency.getClassifier())); } request.setArtifactDependencies(artifactDependencies); } request.setLocalRepository(walkerRequest.getLocalRepository()); final List<ArtifactRepository> remoteRepositories = new ArrayList<ArtifactRepository>(); final Set<String> repoIds = new HashSet<String>(); final List<ArtifactRepository> requestRepos = walkerRequest.getRemoteRepositories(); if (requestRepos != null) { for (ArtifactRepository artifactRepository : requestRepos) { repoIds.add(artifactRepository.getId()); remoteRepositories.add(artifactRepository); } } if (resolutionContext != null) { for (ArtifactRepository artifactRepository : resolutionContext.getRemoteArtifactRepositories()) { if (repoIds.add(artifactRepository.getId())) { remoteRepositories.add(artifactRepository); } } request.setManagedVersionMap(resolutionContext.getManagedVersionMap()); } request.setRemoteRepositories(remoteRepositories); final ArtifactFilter artifactFilter = walkerRequest.getArtifactFilter(); request.setCollectionFilter(artifactFilter); request.setResolutionFilter(artifactFilter); ArtifactResolutionResult result = repositorySystem.resolve(request); final Exception ex; if (result.hasExceptions()) { ex = result.getExceptions().get(0); } else if (result.hasCircularDependencyExceptions()) { ex = result.getCircularDependencyException(0); } else if (result.hasErrorArtifactExceptions()) { ex = result.getErrorArtifactExceptions().get(0); } else if (result.hasMetadataResolutionExceptions()) { ex = result.getMetadataResolutionException(0); } else { ex = null; } if (ex != null) { throw new IllegalStateException(ex); } for (Artifact missingArtifact : result.getMissingArtifacts()) { throw Exceptions.pipe(new ArtifactNotFoundException("Unable to resolve artifact", missingArtifact)); } return result.getArtifacts(); }
From source file:org.sourcepit.tpmp.LocalizeTargetPlatformMojo.java
License:Apache License
private void download(MavenSession session, MavenProject project, File parentDir) { final Artifact platformArtifact = createPlatformArtifact(project); final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(platformArtifact); request.setResolveRoot(true);/*from ww w. j av a 2 s . c o m*/ request.setResolveTransitively(false); request.setLocalRepository(session.getLocalRepository()); request.setRemoteRepositories(project.getRemoteArtifactRepositories()); request.setManagedVersionMap(project.getManagedVersionMap()); request.setOffline(session.isOffline()); repositorySystem.resolve(request); if (platformArtifact.getFile().exists()) { final ZipProcessingRequest unzipRequest = ZipProcessingRequest .newUnzipRequest(platformArtifact.getFile(), parentDir); try { new ZipProcessor().process(unzipRequest); } catch (IOException e) { throw Exceptions.pipe(e); } } }
From source file:org.sourcepit.tpmp.resolver.tycho.TychoSessionTargetPlatformResolver.java
License:Apache License
private MavenProject setupAggregatedProject(MavenSession session, TargetPlatformConfiguration aggregatedConfiguration) { PropertiesMap mvnProperties = new LinkedPropertiesMap(); mvnProperties.load(getClass().getClassLoader(), "META-INF/tpmp/maven.properties"); String groupId = mvnProperties.get("groupId"); String artifactId = mvnProperties.get("artifactId"); String version = mvnProperties.get("version"); final String tpmpKey = Plugin.constructKey(groupId, artifactId); MavenProject origin = session.getCurrentProject(); Model model = origin.getModel().clone(); Build build = model.getBuild();/*from www . j av a2 s . c o m*/ if (build.getPluginsAsMap().get(tpmpKey) == null) { Plugin tpmp = new Plugin(); tpmp.setGroupId(groupId); tpmp.setArtifactId(artifactId); tpmp.setVersion(version); build.getPlugins().add(tpmp); build.flushPluginMap(); } MavenProject fake = new MavenProject(model); fake.setClassRealm(origin.getClassRealm()); fake.setFile(origin.getFile()); final Map<String, ArtifactRepository> artifactRepositories = new LinkedHashMap<String, ArtifactRepository>(); final Map<String, ArtifactRepository> pluginRepositories = new LinkedHashMap<String, ArtifactRepository>(); for (MavenProject project : session.getProjects()) { for (ArtifactRepository repository : project.getRemoteArtifactRepositories()) { if (!artifactRepositories.containsKey(repository.getId())) { artifactRepositories.put(repository.getId(), repository); } } for (ArtifactRepository repository : project.getPluginArtifactRepositories()) { if (!pluginRepositories.containsKey(repository.getId())) { pluginRepositories.put(repository.getId(), repository); } } } fake.setRemoteArtifactRepositories(new ArrayList<ArtifactRepository>(artifactRepositories.values())); fake.setPluginArtifactRepositories(new ArrayList<ArtifactRepository>(pluginRepositories.values())); fake.setManagedVersionMap(origin.getManagedVersionMap()); if (getTychoProject(fake) == null) { fake.setPackaging("eclipse-repository"); } fake.getBuildPlugins(); AbstractTychoProject tychoProject = (AbstractTychoProject) getTychoProject(fake); tychoProject.setupProject(session, fake); Properties properties = new Properties(); properties.putAll(fake.getProperties()); properties.putAll(session.getSystemProperties()); // session wins properties.putAll(session.getUserProperties()); fake.setContextValue(TychoConstants.CTX_MERGED_PROPERTIES, properties); fake.setContextValue(TychoConstants.CTX_TARGET_PLATFORM_CONFIGURATION, aggregatedConfiguration); ExecutionEnvironmentConfiguration eeConfiguration = new ExecutionEnvironmentConfigurationImpl(logger, aggregatedConfiguration.isResolveWithEEConstraints()); tychoProject.readExecutionEnvironmentConfiguration(fake, eeConfiguration); fake.setContextValue(TychoConstants.CTX_EXECUTION_ENVIRONMENT_CONFIGURATION, eeConfiguration); final DependencyMetadata dm = new DependencyMetadata(); for (ReactorProject reactorProject : DefaultReactorProject.adapt(session)) { mergeMetadata(dm, reactorProject, true); mergeMetadata(dm, reactorProject, false); } int i = 0; for (Object object : dm.getMetadata(true)) { InstallableUnitDAO dao = new TychoSourceIUResolver.InstallableUnitDAO( object.getClass().getClassLoader()); dao.setProperty(object, RepositoryLayoutHelper.PROP_CLASSIFIER, "fake_" + i); i++; } for (Object object : dm.getMetadata(false)) { InstallableUnitDAO dao = new TychoSourceIUResolver.InstallableUnitDAO( object.getClass().getClassLoader()); dao.setProperty(object, RepositoryLayoutHelper.PROP_CLASSIFIER, "fake_" + i); i++; } Map<String, DependencyMetadata> metadata = new LinkedHashMap<String, DependencyMetadata>(); metadata.put(null, dm); fake.setContextValue("tpmp.aggregatedMetadata", metadata); return fake; }
From source file:org.universAAL.maven.treebuilder.DependencyTreeBuilder.java
License:Apache License
/** * Method builds dependency tree for a list of maven projects. All artifacts * in the tree are crosschecked against duplications and conflicts. In each * case of duplication, conflict, the case is resolved by omitting artifact * which is lower in the tree and keeping artifact which is higher in the * tree. If artifacts are on the same level then the one occuring first in * the tree is kept.// w w w. j ava 2s . c o m * * @param repository * Maven repository. * @param factory * Factory used for creating artifacts. * @param metadataSource * ArtifactMetadataSource provided by maven. * @param projectDescs * list of maven project descriptors. Each descriptor contains * MavenProject, a list of project's remote repositories and a * boolean indicator if the project needs to be resolved * transitively or not. * @return a dependency tree as a list of rootnodes (instances of * DependencyNode class) which contain their own subtrees. Each * rootnode corresponds to one maven project provided as argument. * The order of rootnodes list is the same as order of provided * maven projects list. * @throws DependencyTreeBuilderException * Notifies about a problem during building the dependency tree. * @throws ArtifactMetadataRetrievalException * Signals problem with metadata retieval. * @throws InvalidVersionSpecificationException * Informs about invalid version specifications. * @throws NoSuchFieldException * Exception related to reflection. * @throws SecurityException * Exception thrown by security manager. * @throws IllegalAccessException * Illegal access during usage of java reflection. * @throws IllegalArgumentException * Illegal argument was passed. */ public List<RootNode> buildDependencyTree(final ArtifactRepository repository, final ArtifactFactory factory, final ArtifactMetadataSource metadataSource, final MavenProjectDescriptor... projectDescs) throws DependencyTreeBuilderException, ArtifactMetadataRetrievalException, InvalidVersionSpecificationException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException { ArtifactFilter filter = new ScopeArtifactFilter(); DependencyTreeResolutionListener listener = new DependencyTreeResolutionListener(filter); Map resolvedArtifacts = new LinkedHashMap(); for (MavenProjectDescriptor projectDesc : projectDescs) { MavenProject project = projectDesc.project; try { List<String> separatedGroupId = extractSeparatedGroupIds(project); // Here you can simply add to create a new list List remoteRepositories = projectDesc.remoteRepositories; // If artifact is marked in pom as a bundle then it is changed // to jar. Retaining bundle can impose problems when the // artifact is duplicated or conflicted with other artifact // specified as a dependency, because in the // dependency there is only jar type specified. Artifact originatingArtifact = project.getArtifact(); this.stringifiedRoot = FilteringVisitorSupport.stringify(originatingArtifact); if ("bundle".equals(originatingArtifact.getType())) { Artifact changeArtifact = artifactFactory.createArtifact(originatingArtifact.getGroupId(), originatingArtifact.getArtifactId(), originatingArtifact.getVersion(), originatingArtifact.getScope(), "jar"); originatingArtifact = changeArtifact; } ResolutionNode root = new ResolutionNode(originatingArtifact, remoteRepositories); // If the project is not supposed to be transitively resolved // then its dependencies are not added to the root. Moreover the // parameter is passed to the recurse method. Thanks to than // when transitive is false, resolving of runtime dependencies // is not performed. if (projectDesc.transitive) { Set<Artifact> dependencyArtifacts = project.getDependencyArtifacts(); if (dependencyArtifacts == null) { dependencyArtifacts = new LinkedHashSet(); List dependencies = project.getDependencies(); for (Object depObj : dependencies) { Dependency dep = (Dependency) depObj; if (dep.isOptional()) { // filtering optional dependencies continue; } Artifact dependencyArtifact; VersionRange versionRange = VersionRange.createFromVersionSpec(dep.getVersion()); dependencyArtifact = factory.createDependencyArtifact(dep.getGroupId(), dep.getArtifactId(), versionRange, dep.getType(), dep.getClassifier(), dep.getScope()); if (dep.getExclusions() != null) { if (!dep.getExclusions().isEmpty()) { List<String> patterns = new ArrayList<String>(); for (Exclusion exclusion : dep.getExclusions()) { patterns.add(exclusion.getGroupId() + ":" + exclusion.getArtifactId()); } dependencyArtifact.setDependencyFilter(new ExcludesArtifactFilter(patterns)); } } dependencyArtifacts.add(dependencyArtifact); } } else { // filtering optional dependencies Set<Artifact> filteredArtifacts = new LinkedHashSet(); for (Artifact a : dependencyArtifacts) { if (!a.isOptional()) { filteredArtifacts.add(a); } } dependencyArtifacts = filteredArtifacts; } for (Artifact depArtifact : dependencyArtifacts) { if (depArtifact.getVersion() != null) { if (!depArtifact.getVersion().equals(depArtifact.getBaseVersion())) { if (depArtifact.isSnapshot()) { depArtifact.setVersion(depArtifact.getBaseVersion()); } } } } root.addDependencies(dependencyArtifacts, remoteRepositories, filter); } // Information about managed versions is extracted from the // artifact's pom (but also from parent poms and settings.xml // file). ManagedVersionMap versionMap = getManagedVersionsMap(originatingArtifact, project.getManagedVersionMap()); recurse(originatingArtifact, root, resolvedArtifacts, versionMap, localRepository, remoteRepositories, metadataSource, filter, listener, projectDesc.transitive, new HashSet<String>(separatedGroupId)); } catch (ArtifactResolutionException exception) { throw new DependencyTreeBuilderException("Cannot build project dependency tree", exception); } } return listener.getRootNodes(); }