微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – 执行shell进程时设置当前工作目录

我想在我的源代码调用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上运行.)

解决方法

在Process对象上使用一个ProcessBuilder工厂方法

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

有关更多文档,请参阅scaladoc file for the sys.process package.不幸的是,它没有提到“当前工作目录”参数,但它们在对象Process的文档中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐