Allow specific 2.8 snapshot version to be used for launcher

git-svn-id: https://simple-build-tool.googlecode.com/svn/trunk@1035 d89573ee-9141-11dd-94d4-bdf5e562f29c
This commit is contained in:
dmharrah 2009-09-23 23:33:01 +00:00
parent 76807cab07
commit f5a18259c1
1 changed files with 19 additions and 2 deletions

View File

@ -47,7 +47,7 @@ private final class Update(bootDirectory: File, sbtVersion: String, scalaVersion
bootDirectory.mkdirs
new PrintWriter(new FileWriter(logFile))
}
/** The main entry point of this class for use by the Update module. It runs Ivy */
private def update()
{
@ -179,7 +179,7 @@ private final class Update(bootDirectory: File, sbtVersion: String, scalaVersion
newDefault.add(sbtResolver(scalaVersion))
case UpdateScala =>
newDefault.add(mavenResolver("Scala-Tools Maven2 Repository", "http://scala-tools.org/repo-releases"))
newDefault.add(mavenResolver("Scala-Tools Maven2 Snapshots Repository", "http://scala-tools.org/repo-snapshots"))
newDefault.add(scalaSnapshots(scalaVersion))
}
onDefaultRepositoryCacheManager(settings)(_.setUseOrigin(true))
settings.addResolver(newDefault)
@ -211,6 +211,23 @@ private final class Update(bootDirectory: File, sbtVersion: String, scalaVersion
resolver.setRoot(root)
resolver
}
private def scalaSnapshots(scalaVersion: String) =
{
val parts = """(\d+)\.(\d+)\.(\d+)-(.+)""".r.pattern.matcher(scalaVersion)
if(parts.matches && parts.group(4) != "SNAPSHOT")
snapshots( Seq(parts.group(1), parts.group(2), parts.group(3)).mkString(".") )
else
mavenResolver("Scala-Tools Maven2 Snapshots Repository", "http://scala-tools.org/repo-snapshots")
}
private def snapshots(baseVersion: String) =
{
val resolver = new URLResolver
resolver.setName("Scala-Tools Maven2 Snapshots Repository")
val base = "http://scala-tools.org/repo-snapshots/"
resolver.setM2compatible(true)
resolver.addArtifactPattern(base + "[organisation]/[module]/" + baseVersion + "-SNAPSHOT/[artifact]-[revision](-[classifier]).[ext]")
resolver
}
/** Creates a resolver for Maven Central.*/
private def mavenMainResolver = defaultMavenResolver("Maven Central")
/** Creates a maven-style resolver with the default root.*/