当我在Play控制台中编译scala时,我得到了这个:
[warn] there were 1 feature warning(s); re-run with -feature for details
[warn] one warning found
我认为这意味着compile -feature
,但我得到了这个:
[error] Expected ID character
[error] Not a valid command: compile (similar: completions)
[error] Expected project ID
[error] Expected configuration
[error] Expected ':' (if selecting a configuration)
[error] Expected key
[error] Expected '::'
[error] Expected end of input.
[error] compile -feature
[error]
然后我跑play -feature
,我得到了这个:
[warn] The `-` command is deprecated in favor of `onFailure` and will be removed in 0.14.0
然后退出。
那我该怎么做呢?
答案 0 :(得分:38)
你必须添加
scalacOptions += "-feature"
如果您的sbt控制台正在运行(或重新启动),请到build.sbt
并执行reload
。
或者,如果您只想为单个会话设置它,而在sbt控制台中,您可以编写set scalacOptions += "-feature"
,此设置立即应用,无需重新加载或重新启动sbt控制台。
答案 1 :(得分:10)
如果您已经在play / sbt repl中进行完成,那么只需为会话修改scalacOptions
的值,就像这样:
答案 2 :(得分:2)
就我而言,我在文件/ usr / local / etc / sbtopts中找到了我的错误来源。它最后由我安装的一些程序添加了以下行。
-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled XX:MaxPermSize=256M
每当sbt启动时,上面的行作为参数传递,导致上述错误。由于这些是解决它的java选项,我们可以在上面的行之前添加-J或完全删除该行。这摆脱了 - 特征。
答案 3 :(得分:0)
需要将标志添加到Scala编译器选项中。您可以通过在build.sbt
文件中添加以下行来执行此操作:
scalacOptions ++= Seq("-feature")