mavendeps.py
def _resolve (self, itemsToExclude, itemsAdded, scopeSet, skipOptional):
    """ Resolve dependencies by excluding items and selecting the proper
    version in case there are "duplicates" for the same coord.name
    """
    self.coord.resolve()

    for exclusion in self.exclusions:
      itemsToExclude[exclusion.name] = exclusion

    newDeps = OrderedDict()
    for dep in self.deps:
      if scopeSet and (dep.coord.scope not in scopeSet):
        continue

      if skipOptional and dep.optional:
        continue

      if dep.coord.name in itemsToExclude:
        if dep.coord.isContained (itemsToExclude[dep.coord.name]):        
          continue

        # version conflict
        # print dep.coord.id, "vs", itemsToExclude[dep.coord.name].id
        continue

      if dep.coord.name in newDeps:
        dep = MavenDep.resolveDependencyConflict (dep, newDeps[dep.coord.name])

      # don't add same item twice when resolving a tree
      if dep.coord.full in itemsAdded:
        continue

      newDeps[dep.coord.name] = dep
      itemsAdded.add (dep.coord.full)

    # resolve children
    for dep in newDeps.values():
      # need to copy to not modify siblings with exclusions from sons
      # of this dependency      
      dep._resolve (itemsToExclude.copy(), itemsAdded, scopeSet, skipOptional)
      
    self.deps = newDeps.values()
    self.exclusions = []
    return
 Resolve dependencies by excluding items and selecting the proper
    version in case there are "duplicates" for the same coord.name
    
Resolve dependencies by excluding items and selecting the proper
version in case there are "duplicates" for the same coord.name
Resolve dependencies by excluding items and selecting the proper version in case there are " duplicates " for the same coord . name
def _resolve (self, itemsToExclude, itemsAdded, scopeSet, skipOptional):
    self.coord.resolve()
    for exclusion in self.exclusions:
      itemsToExclude[exclusion.name] = exclusion
    newDeps = OrderedDict()
    for dep in self.deps:
      if scopeSet and (dep.coord.scope not in scopeSet):
        continue
      if skipOptional and dep.optional:
        continue
      if dep.coord.name in itemsToExclude:
        if dep.coord.isContained (itemsToExclude[dep.coord.name]):        
          continue
        continue
      if dep.coord.name in newDeps:
        dep = MavenDep.resolveDependencyConflict (dep, newDeps[dep.coord.name])
      if dep.coord.full in itemsAdded:
        continue
      newDeps[dep.coord.name] = dep
      itemsAdded.add (dep.coord.full)
    for dep in newDeps.values():
      dep._resolve (itemsToExclude.copy(), itemsAdded, scopeSet, skipOptional)
    self.deps = newDeps.values()
    self.exclusions = []
    return
def _resolve ( self , itemsToExclude , itemsAdded , scopeSet , skipOptional ) : self . coord . resolve ( ) for exclusion in self . exclusions : itemsToExclude [ exclusion . name ] = exclusion newDeps = OrderedDict ( ) for dep in self . deps : if scopeSet and ( dep . coord . scope not in scopeSet ) : continue if skipOptional and dep . optional : continue if dep . coord . name in itemsToExclude : if dep . coord . isContained ( itemsToExclude [ dep . coord . name ] ) : continue continue if dep . coord . name in newDeps : dep = MavenDep . resolveDependencyConflict ( dep , newDeps [ dep . coord . name ] ) if dep . coord . full in itemsAdded : continue newDeps [ dep . coord . name ] = dep itemsAdded . add ( dep . coord . full ) for dep in newDeps . values ( ) : dep . _resolve ( itemsToExclude . copy ( ) , itemsAdded , scopeSet , skipOptional ) self . deps = newDeps . values ( ) self . exclusions = [ ] return
Resolve dependencies by excluding items and selecting the proper
version in case there are "duplicates" for the same coord.name
Resolve dependencies by excluding items and selecting the proper version in case there are " duplicates " for the same coord . name
""" Resolve dependencies by excluding items and selecting the proper
    version in case there are "duplicates" for the same coord.name
    """ # version conflict # print dep.coord.id, "vs", itemsToExclude[dep.coord.name].id # don't add same item twice when resolving a tree # resolve children # need to copy to not modify siblings with exclusions from sons # of this dependency      
self
itemsToExclude
itemsAdded
scopeSet
skipOptional