导入和行为不良的SBT插件
我试图在build.sbt文件中定义解析器 我正在使用这个插件,通过在plugins.sbt中添加这一行: 在build.sbt中指定此项时: 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
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"
)
}