我不能在/ src里面使用sbt.Process吗?

时间:2011-03-22 14:44:32

标签: scala sbt

我目前正在使用sbt来构建和运行我的scala程序。我正在尝试使用sbt.Process来执行系统命令。我必须遗漏一些东西,因为当我尝试在src /我的一个文件中导入sbt.Process时,我得到了这个错误。

not found: value sbt
[error] import sbt.Process._

所以看起来我无法访问src / files中的sbt包。访问它需要做什么?谢谢。

4 个答案:

答案 0 :(得分:2)

SBT的环境(v 0.7.x)仅适用于您的构建文件或插件。

使用sbt.Process库(直到0.9.x,将Process作为独立库)的最简单方法是将(BSD License)Process.scalaProcessImpl.scala复制到项目中

答案 1 :(得分:1)

运行sbt和编译源文件有不同的类路径。 一个类路径用于编译目录project / build中的文件(一个包含sbt jars,通常包含scala库2.7.7),另一个用于构建项目的源文件(一个包含来自lib和lib_managed的依赖项,通常是scala library 2.8。*)。如果您想在源文件中使用sbt.Process,您可以做两件事:

  • 将sbt jar添加到lib或lib_managed,以使其在项目的类路径中可用
  • 使用scala 2.9的快照版本,它将内置sbt Process作为sys.process包

答案 2 :(得分:1)

等待Scala 2.9,然后只使用scala.sys.process

答案 3 :(得分:0)

自从2.9版开始,sbt包已成为Scala标准库的一个组成部分

  

...此API已包含在版本2.9的Scala标准库中。

     

引自sbt wiki

这是the link(向下滚动)

好吧,为了使用它,您只需要在build.sbt文件中添加以下代码行:sbtPlugin := true它将添加所需的项目依赖项。

当然,此解决方案仅用于使用sbt包进行导入。您应该重构您的代码以使用像Daniel C. Sobral所建议的新包scala.sys.process