21

sbt update複数の sbt プロジェクトを更新するために、ソース コード内で呼び出したいと思います。シェルでは、これは簡単です:

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 に答える