【发布时间】:2016-05-09 18:34:27
【问题描述】:
我的问题最好用截图来描述:
如您所见,我的 SBT/Scala 项目中加载了一个 org.virtuslab:unicorn-core_2.11 依赖项。具有相应源的 jar 文件也可用。出于某种原因,Intellij Idea 决定忽略可用的源文件 Table.scala 并改用 .class 文件。显然,所有其他文件都可以。
显然,如果没有包含在 .scala 文件中的信息,Intellij 将无法正确分析我的代码,并且我的项目中会出现 Cannot resolve symbol BaseIdRepository 错误(和类似错误)。
我手动检查了源包,Table.scala 文件在那里,看起来没问题。另外,直到两天前,这一切都完美无缺。我不知道为什么它崩溃了。当它仍然有效时,我尝试使用 git 将我的项目恢复到早期版本,但没有运气。
我尝试降级和升级库,我尝试删除它并再次添加它,我尝试基于现有资源创建一个全新的项目,但再次失败。
仅作记录,我能够编译并运行我的项目。 可能唯一相关的是我在编译项目时收到的警告:
[warn] /home/tobik/scala/payola-viz/src/app/model/appgen/repository/UsersRepository.scala:7: Could not find any member to link for "BaseIdRepository".
【问题讨论】:
-
好吧,Tables trait does look incorrect 的自类型注释就是其中之一。我不认为有两个匿名的东西(
{}{})是允许的。至少这就是 Idea 遇到问题的原因。 -
嗯嗯,我也明白了。但正如我所说......它直到两天前才起作用。
-
是的,非常奇怪。源 jar 中的代码很好。您最近是否更新了想法或 scala 插件?也许他们引入了某种错误。
-
这是我的想法,所以我尝试了几个不同的 scala 插件版本(我什至降级回 2.* 版本)。没有区别。
-
作为一个临时解决方案,我将独角兽源直接添加到我的代码库中,并从项目库中手动将其删除。我摆脱了错误,它仍然可以编译,因为库仍然是
build.sbt中的依赖项。我想一旦 Intellij 将项目与build.sbt同步,它就会中断,但我可以重复这个过程。为了避免污染我的项目,我将包含的源添加到.gitignore。这是一个丑陋的工作。我希望有人会提出一个实际的解决方案......
标签: scala intellij-idea sbt