2014-09-18 69 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