mirror of https://github.com/sbt/sbt.git
add ChainedResolver(name: String, resolvers: Seq[Resolver]), closes #63
This commit is contained in:
parent
07ba2bcaa2
commit
dcd84a48ab
|
|
@ -6,13 +6,13 @@ package sbt
|
|||
import org.apache.ivy.{core,plugins}
|
||||
import core.module.id.ModuleRevisionId
|
||||
import core.settings.IvySettings
|
||||
import plugins.resolver.{ChainResolver, DependencyResolver, IBiblioResolver}
|
||||
import plugins.resolver.{DependencyResolver, IBiblioResolver}
|
||||
import plugins.resolver.{AbstractPatternsBasedResolver, AbstractSshBasedResolver, FileSystemResolver, SFTPResolver, SshResolver, URLResolver}
|
||||
|
||||
private object ConvertResolver
|
||||
{
|
||||
/** Converts the given sbt resolver into an Ivy resolver..*/
|
||||
def apply(r: Resolver)(implicit settings: IvySettings) =
|
||||
def apply(r: Resolver)(implicit settings: IvySettings, log: Logger) =
|
||||
{
|
||||
r match
|
||||
{
|
||||
|
|
@ -61,6 +61,7 @@ private object ConvertResolver
|
|||
initializePatterns(resolver, repo.patterns)
|
||||
resolver
|
||||
}
|
||||
case repo: ChainedResolver => IvySbt.resolverChain(repo.name, repo.resolvers, false, settings, log)
|
||||
case repo: RawRepository => repo.resolver
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ final class IvySbt(val configuration: IvyConfiguration)
|
|||
i.paths.ivyHome foreach is.setDefaultIvyUserDir
|
||||
IvySbt.configureCache(is, i.localOnly)
|
||||
IvySbt.setResolvers(is, i.resolvers, i.otherResolvers, i.localOnly, configuration.log)
|
||||
IvySbt.setModuleConfigurations(is, i.moduleConfigurations)
|
||||
IvySbt.setModuleConfigurations(is, i.moduleConfigurations, configuration.log)
|
||||
}
|
||||
is
|
||||
}
|
||||
|
|
@ -205,7 +205,7 @@ private object IvySbt
|
|||
val mainChain = makeChain("Default", "sbt-chain", resolvers)
|
||||
settings.setDefaultResolver(mainChain.getName)
|
||||
}
|
||||
private def resolverChain(name: String, resolvers: Seq[Resolver], localOnly: Boolean, settings: IvySettings, log: Logger): DependencyResolver =
|
||||
def resolverChain(name: String, resolvers: Seq[Resolver], localOnly: Boolean, settings: IvySettings, log: Logger): DependencyResolver =
|
||||
{
|
||||
val newDefault = new ChainResolver {
|
||||
// Technically, this should be applied to module configurations.
|
||||
|
|
@ -219,7 +219,7 @@ private object IvySbt
|
|||
newDefault.setCheckmodified(false)
|
||||
for(sbtResolver <- resolvers) {
|
||||
log.debug("\t" + sbtResolver)
|
||||
newDefault.add(ConvertResolver(sbtResolver)(settings))
|
||||
newDefault.add(ConvertResolver(sbtResolver)(settings, log))
|
||||
}
|
||||
newDefault
|
||||
}
|
||||
|
|
@ -231,7 +231,7 @@ private object IvySbt
|
|||
import collection.JavaConversions._
|
||||
artifact.getQualifiedExtraAttributes.keys.exists(_.asInstanceOf[String] startsWith "m:")
|
||||
}
|
||||
private def setModuleConfigurations(settings: IvySettings, moduleConfigurations: Seq[ModuleConfiguration])
|
||||
private def setModuleConfigurations(settings: IvySettings, moduleConfigurations: Seq[ModuleConfiguration], log: Logger)
|
||||
{
|
||||
val existing = settings.getResolverNames
|
||||
for(moduleConf <- moduleConfigurations)
|
||||
|
|
@ -240,7 +240,7 @@ private object IvySbt
|
|||
import IvyPatternHelper._
|
||||
import PatternMatcher._
|
||||
if(!existing.contains(resolver.name))
|
||||
settings.addResolver(ConvertResolver(resolver)(settings))
|
||||
settings.addResolver(ConvertResolver(resolver)(settings, log))
|
||||
val attributes = javaMap(Map(MODULE_KEY -> name, ORGANISATION_KEY -> organization, REVISION_KEY -> revision))
|
||||
settings.addModuleConfiguration(attributes, settings.getMatcher(EXACT_OR_REGEXP), resolver.name, null, null, null)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ final class RawRepository(val resolver: DependencyResolver) extends Resolver
|
|||
def name = resolver.getName
|
||||
override def toString = "Raw(" + resolver.toString + ")"
|
||||
}
|
||||
sealed case class ChainedResolver(name: String, resolvers: Seq[Resolver]) extends Resolver
|
||||
sealed case class MavenRepository(name: String, root: String) extends Resolver
|
||||
{
|
||||
override def toString = name + ": " + root
|
||||
|
|
|
|||
Loading…
Reference in New Issue