如何将Scala编译器选项附加到sbt中的scalacOptions?

时间:2011-06-29 13:24:15

标签: scala sbt

我使用sbt 0.10

我在.sbt文件中有以下设置:

scalacOptions += "-usejavacp"

问题是当Scala编译器执行并设置scalacOptions时:

[debug] Calling Scala compiler with arguments  (CompilerInterface):
[debug]         -usejavacp
[debug]         -d
[debug]         D:\project\target\scala-2.8.1.final\classes
[debug]         -bootclasspath
...

-usejavacp参数出现在导致此错误的实际Scala jar之前:

scala.collection.mutable.ListBuffer does not take type parameters

参数是否有附加方式而不是前置?我也尝试了++= Array("-usejavacp")但结果是一样的。

2 个答案:

答案 0 :(得分:7)

如果查看here,您会看到以下评论:

  

key += value相当于key ~= (_ :+ value)key <<= key(_ :+ value)

奇怪的是,这似乎与你所看到的顺序相矛盾。我认为这值得开启一个问题,同时,你可以使用完整的语法来看看你是否能够完成你所需要的。

答案 1 :(得分:2)

要直接回答您的问题,scalacOptions设置提供的自定义scalac选项列表是prepended,用于控制类路径,输出目录和源文件的选项。

据推测,您正在使用-usejavacp以编程方式使用Scala编译器或解释器。 SBT FAQ中有一个条目。