2014-09-18 68 views
1

我想在scala 2.11.2中使用延續編譯一個類,並且我無法使用sbt編譯它。該程序編譯時使用scalac,它的工作原理是我想要的,所以我知道它不是我的代碼。如何在scala 2.11中編譯延續使用sbt

我編譯併成功地利用

scalac -Xplugin ~/Software/scala-continuations-plugin_2.11.2-1.0.2.jar -P:continuations:enable Coroutine.scala 

scala -Xplugin ~/Software/scala-continuations-plugin_2.11.2-1.0.2.jar -cp . coroutine.CoroutineTest 

然而,當我試着使用SBT編譯,我得到以下錯誤

[error] bad option: -P:continuations:enable 

這裏是我的build.sbt文件運行

name := "coroutine" 
version := "1.0" 
scalaVersion := "2.11.2" 
autoCompilerPlugins := true 
libraryDependencies += "org.scala-lang.plugins" % "scala-continuations-plugin_2.11.2" % "1.0.2" 
scalacOptions += "-P:continuations:enable" 

您也可以查看代碼和sbt文件以及

http://www.cs.uga.edu/~jam/coroutine/Coroutine.scala

http://www.cs.uga.edu/~jam/coroutine/build.sbt

我也用scalacOptions調用-Xplugins正如我在scalac命令上面做的嘗試。這導致錯誤

[error] bad option: '-Xplugin ~/Software/scala-continuations-plugin_2.11.2-1.0.2.jar' 
+0

請嘗試'addCompilerPlugin(「org.scala-lang.plugins」%「continuations」%「2.8.1」)'?檢查這篇文章http://www.scala-sbt.org/0.13/docs/Compiler-Plugins.html。 – longhua 2014-09-18 20:29:26

回答

4

您可能需要使用addCompilerPlugin來添加continuation插件。此外,scala-continuations-library_2.11是必需的。

name := "coroutine" 

version := "1.0" 

scalaVersion := "2.11.2" 

autoCompilerPlugins := true 

addCompilerPlugin("org.scala-lang.plugins" % "scala-continuations-plugin_2.11.2" % "1.0.2") 

libraryDependencies += "org.scala-lang.plugins" % "scala-continuations-library_2.11" % "1.0.2" 

scalacOptions += "-P:continuations:enable" 
+0

太棒了。我已將此信息添加到http://stackoverflow.com/a/2683215/86485 – 2015-05-21 22:36:18