进口和不良行为的SBT插件

时间:2015-02-10 09:22:09

标签: sbt

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

我使用此插件,在plugins.sbt中添加此行:

addSbtPlugin("com.gilt" % "sbt-dependency-graph-sugar" % "0.7.4")

build.sbt中指定时:

import sbt.complete.DefaultParsers._

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

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类的命名空间冲突?。

2 个答案:

答案 0 :(得分:0)

一个解决方案就是:

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

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

我不太喜欢它,因为它增加了混乱。 理想的解决方案是隐藏不必要的进口。

答案 1 :(得分:0)

此解决方案创建了一个新范围,因此不会干扰导入:

name := "MyProject"

{
    import sbt.complete.DefaultParsers._

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