Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入和行为不良的SBT插件_Sbt - Fatal编程技术网

导入和行为不良的SBT插件

导入和行为不良的SBT插件,sbt,Sbt,我试图在build.sbt文件中定义解析器 我正在使用这个插件,通过在plugins.sbt中添加这一行: 在build.sbt中指定此项时: SBT投诉此错误消息: reference to literal is ambiguous; reference to token is ambiguous; it is imported twice in the same scope by import sbt.complete.DefaultParsers._ and import _root_.g

我试图在build.sbt文件中定义解析器

我正在使用这个插件,通过在plugins.sbt中添加这一行:

在build.sbt中指定此项时:

SBT投诉此错误消息:

reference to literal is ambiguous;
reference to token is ambiguous;
it is imported twice in the same scope by
import sbt.complete.DefaultParsers._
and import _root_.gilt.DependencyGraph._
如何避免基本SBT类的名称空间冲突?

一种解决方案是:

import sbt.complete.{DefaultParsers ⇒ DP}
import sbt.complete.DefaultParsers._

val servers = DP.token(
    DP.literal("desarrollo") | 
    DP.literal("parametrizacion")
)
我并不完全喜欢它,因为它增加了混乱。
理想的解决方案是隐藏不需要的导入。

此解决方案创建了一个新的作用域,因此不会干扰导入:

name := "MyProject"

{
    import sbt.complete.DefaultParsers._

    val servers = token(
        "desarrollo" | "parametrizacion"
    )
}
import sbt.complete.{DefaultParsers ⇒ DP}
import sbt.complete.DefaultParsers._

val servers = DP.token(
    DP.literal("desarrollo") | 
    DP.literal("parametrizacion")
)
name := "MyProject"

{
    import sbt.complete.DefaultParsers._

    val servers = token(
        "desarrollo" | "parametrizacion"
    )
}