我试图在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类的命名空间冲突?。
答案 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"
)
}