Override output directory for sbt multi-project build -
i'm using sbt multi-project build, described here:
http://www.scala-sbt.org/0.13/tutorial/multi-project.html
here's top-level build.scala file:
import sbt._ import keys._ object examplebuild extends build { lazy val scrooge = project( id = "scrooge", base = file("messages-scrooge") ) lazy val examples = project( id = "examples", base = file("examples") ).dependson(scrooge) }
i change target directory output goes separate partition.* following seems work clunky, since need change separately every sub-project. it's going worse if there more of them:
target="$home/sbt-target" sbt "project scrooge" "set target := new java.io.file(\"$target/scrooge\")" "project examples" "set target := new java.io.file(\"$target/examples\")" "project root" clean assembly
i'd prefer more following, fails compile lots of messages "object blah not member of package..." in places "examples" project tries import types "scrooge" project. assume that's because both projects stomping on each others' output files.
target="$home/sbt-target" sbt "set every target := new java.io.file(\"$target\")" clean assembly
is there better way this? don't mind changing build files, i'd prefer not have hard-coded paths inside them.
* - reason want change output directory i'm building inside vagrant vm, , source folder shared using virtualbox shared folder windows host linux vm. scala compiler tries create long filenames exceed windows 260 character path limit. if believe i'd better trying work around problem in different way, let me know , i'll post separate question, i've hit lot of problems in direction, hence desire change target directory.
Comments
Post a Comment