!不是String的成员

mic*_*icz 3 scala sbt

我正在尝试将sbt版本从0.12.3升级到0.13.0,但是在尝试加载项目后,出现以下错误:

! is not a member of String
Run Code Online (Sandbox Code Playgroud)

在执行外部命令的行中发生错误:

 ("tar cf " + (buildRoot / "SOURCES").toString + "/" + ver + ".tar -C " + buildRoot.toString + " dir").!
Run Code Online (Sandbox Code Playgroud)

在以前的版本中,一切都很好。

有谁知道我做错了什么或最新版本中发生了什么变化?

编辑:问题已解决。需要添加:

 import sbt.Process._
Run Code Online (Sandbox Code Playgroud)

例如,在您尝试使用postfixOps的对象中:

  val success:Int = ((dir / "script.sh" toString) !)
Run Code Online (Sandbox Code Playgroud)

jsu*_*eth 6

!命令(用于流程)来自sbt的流程API或Scala的。

如果您打算将sbt的日志记录与分支一起使用(强烈建议),那么您要确保自己 import sbt.Process._

另外,您可能想让您的代码看起来更像:

val logger: sbt.Logger = ???  //(usually streams.value.log)
val success:Int = (dir / "script.sh" toString) ! logger
Run Code Online (Sandbox Code Playgroud)