我有两个单独的Scala项目。在两个项目中,build.sbt
都具有以下行:
lazy val V = _root_.scalafix.sbt.BuildInfo
两个项目包含多个项目,因此两个build.sbt
文件都是多项目构建。在研究中,我遇到了一个根项目的想法,我认为上述值中的_root_
表示根项目。
我的问题是,在其中一个项目中,sbt无法解析scalafix
中的符号lazy val V = _root_.scalafix.sbt.BuildInfo
。当我在该项目中搜索scalafix.sbt.BuildInfo
时,我可以找到相关的jar,但是sbt某种程度上错过了它。据我所知,这两个项目几乎相同,但一个解决了scalafix
,而另一个解决了。
对于两个项目,jar似乎都位于Mac的以下目录中:
/Users/soft/.ivy2/cache/scala_2.12/sbt_1.0/ch.epfl.scala/sbt-scalafix/jars/sbt-scalafix-0.6.0-M19.jar!/scalafix/sbt
什么是_root_
?我如何帮助sbt解决scalafix
?
答案 0 :(得分:1)
我认为上述值中的 root 表示根项目。
不,这是不正确的。
所有sbt文件都是scala代码,_root_
与scala中的_root_
含义相同。因此,答案与What is the root package in Scala中的答案相同。
据我所知,这两个项目几乎相同,但是一个解决了scalafix,而另一个解决了。
问题很可能是缺少sclafix插件。
检查
在project/plugins.sbt
中是否启用了插件
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.1")