Support 'reload plugins' after ignoring a failure to load a project.

This can be used to debug problems with dependencies or code.
It won't help with .sbt files, however.
This commit is contained in:
Mark Harrah 2013-01-29 17:47:29 -05:00
parent 437c805f3d
commit b2eb4661df
1 changed files with 5 additions and 3 deletions

View File

@ -371,9 +371,11 @@ object Project extends ProjectExtra
val base = s.configuration.baseDirectory
projectReturn(s) match { case Nil => (setProjectReturn(s, base :: Nil), base); case x :: xs => (s, x) }
case Plugins =>
val extracted = Project.extract(s)
val newBase = extracted.currentUnit.unit.plugins.base
val newS = setProjectReturn(s, newBase :: projectReturn(s))
val (newBase, oldStack) = if(Project.isProjectLoaded(s))
(Project.extract(s).currentUnit.unit.plugins.base, projectReturn(s))
else // support changing to the definition project if it fails to load
(BuildPaths.projectStandard(s.baseDir), s.baseDir :: Nil)
val newS = setProjectReturn(s, newBase :: oldStack)
(newS, newBase)
}
@deprecated("This method does not apply state changes requested during task execution. Use 'runTask' instead, which does.", "0.11.1")