This commit is contained in:
Mark Harrah 2010-02-21 20:20:48 -05:00
parent 522b412d14
commit 7254885162
2 changed files with 10 additions and 8 deletions

View File

@ -29,6 +29,9 @@ trait ClasspathProject extends Project
}
set.toList
}
/* Filter used to select dependencies for the classpath from managed and unmanaged directories.
* By default, it explicitly filters (x)sbt-launch(er)-<version>.jar, since it contains minified versions of various classes.*/
def classpathFilter: FileFilter = "*.jar" - "*sbt-launch*.jar"
}
trait BasicDependencyProject extends BasicManagedProject with UnmanagedClasspathProject
{
@ -43,14 +46,12 @@ trait UnmanagedClasspathProject extends ClasspathProject
/** The classpath containing all jars in the unmanaged directory. */
def unmanagedClasspath: PathFinder =
{
val base = descendents(dependencyPath, jarFilter)
val base = descendents(dependencyPath, classpathFilter)
if(scratch)
base +++ (info.projectPath * jarFilter)
base +++ (info.projectPath * classpathFilter)
else
base
}
/* Explicitly filter (x)sbt-launch(er)-<version>.jar, since it contains minified versions of various classes.*/
private def jarFilter: NameFilter = "*.jar" - "*sbt-launch*.jar"
/** The classpath containing all unmanaged classpath elements for the given configuration. This typically includes
* at least 'unmanagedClasspath'.*/
def fullUnmanagedClasspath(config: Configuration): PathFinder
@ -123,7 +124,7 @@ trait ManagedProject extends ClasspathProject with IvyTasks
def managedClasspath(config: Configuration): PathFinder = configurationClasspath(config)
/** All dependencies in the given configuration. */
final def configurationClasspath(config: Configuration): PathFinder = descendents(configurationPath(config), classpathFilter)
def classpathFilter: FileFilter = "*.jar"
/** The base path to which dependencies in configuration 'config' are downloaded.*/
def configurationPath(config: Configuration): Path = managedDependencyPath / config.toString

View File

@ -135,7 +135,10 @@ class xMain extends xsbti.AppMain
def rememberCurrent(newArgs: List[String]) = rememberProject(rememberFail(newArgs))
def rememberProject(newArgs: List[String]) = if(baseProject.name != project.name) (ProjectAction + " " + project.name) :: newArgs else newArgs
def rememberFail(newArgs: List[String]) = failAction.map(f => (FailureHandlerPrefix + f)).toList ::: newArgs
def tryOrFail(action: => Trampoline) = try { action } catch { case e: Exception => logCommandError(project.log, e); failed(BuildErrorExitCode) }
def reload(newID: ApplicationID, args: List[String]) =
result( new Reboot(project.defScalaVersion.value, rememberCurrent(args), newID, configuration.baseDirectory) )
def failed(code: Int) =
failAction match
{
@ -147,9 +150,7 @@ class xMain extends xsbti.AppMain
{
case "" :: tail => continue(project, tail, failAction)
case (ExitCommand | QuitCommand) :: _ => result( Exit(NormalExitCode) )
case RebootCommand :: tail =>
val newID = new ApplicationID(configuration.provider.id, baseProject.sbtVersion.value)
result( new Reboot(project.defScalaVersion.value, rememberCurrent(tail), newID, configuration.baseDirectory) )
case RebootCommand :: tail => reload( new ApplicationID(configuration.provider.id, baseProject.sbtVersion.value), tail )
case InteractiveCommand :: _ => continue(project, prompt(baseProject, project) :: arguments, interactiveContinue)
case SpecificBuild(version, action) :: tail =>
if(Some(version) != baseProject.info.buildScalaVersion)