21

我想sbt update在我的源代码中调用,以更新多个 sbt 项目。在 shell 中,这很容易:

cd /path/to/project && sbt update

但是如果我scala.sys.process在我的代码中使用,它不会记得cd因此sbt在错误的目录中被调用。像这样的代码:

import scala.sys.process._
("cd /path/to/project" #&& "sbt update").!!

而且我在文档中没有找到通过控制台设置 sbt 项目路径的任何可能性。如果这样的工作会很好:

"sbt -projectPath /path/to/project update".!!

如果这样的事情是可能的,这将为我省去很多麻烦!(特别是它在 UNIX 和 Windows 上运行。)

4

1 回答 1

38

在对象上使用其中一种ProcessBuilder工厂方法Process

sys.process.Process(Seq("sbt","update"), new java.io.File("/path/to/project")).!!

有关更多文档,请参阅sys.process 包的 scaladoc 文件。不幸的是,它没有提到“当前工作目录”参数,但它们在 object 的文档中Process

于 2012-07-20T12:30:25.310 回答