在Scala程序中以编程方式运行SBT命令

时间:2019-02-08 22:35:35

标签: scala sbt

我正在尝试在Scala程序中运行SBT命令。 SBT命令将在另一个项目中执行,而不是在包含我的Scala程序的项目中执行。 为我提供了项目的路径,因此我应该以某种方式使SBT命令在路径的目录中执行。 我的程序应等待SBT命令运行完成,然后再继续下一步。

link说,添加以下行将使SBT等待外部输入,但是我不确定它是否适合我的情况。

connectInput in run := true

我还从中获得了进一步的信息link,即可以执行以下外部命令:

scala> import sys.process._
import sys.process._

scala> val result = "ls -al" !

该命令后的单个!表示您获得状态代码,而双!!则表示您已触发了外部命令的实际结果。 我发现很难结合这些信息来特别解决我的任务。

例如,如果我具有以下SBT命令和项目路径,该如何在Scala程序中执行它:

 sbt -ivy ./.ivy2 -Dsbt.ivy.home=./.ivy2 -Divy.home=./.ivy2 semanticdb

/Users/soft/Downloads/TestAmplification

我遇到了上面写的相同的SBT命令,如下所示,但这没有多大意义:

val sbtCmd = s"sbt -ivy ./ivy2 -Dsbt.ivy.home=./ivy2 -Divy.home=./ivy2 -Dsbt.boot.directory=./sbt -Dsbt.global.base=./sbt -mem 4096 semanticdb"

0 个答案:

没有答案