如何调试错误“缺少X所需的类文件。在Scala中,包Z的引用值Y指的是不存在的符号”?

时间:2012-09-17 16:20:53

标签: scala classpath .class-file

自上周以来,我刚刚开始使用Scala,我遇到的这个问题让我发疯了。

我有一些代码,我想完全从Java迁移到Scala(除了库),但是由于这个神秘的错误,我已经遇到了一个我现在无法继续的块。

假设我有一个我在 org.domain.subdomain.MyClass

中定义的课程

我有一个似乎没有编译问题的类(由Intellij建议)但是当我构建项目的模块时,我会得到以下内容

缺少 MyClass 所需的类文件

org.domain 的参考值子域是指不存在的符号。

我确信(或几乎?)在我开始重写Scala中的代码之前,我正在编译项目路径正确。

我无法使用verbose选项进行编译。我使用FSC编译器作为项目编译器。 Intellij没有使用详细选项显示任何

这里发生了什么? 我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

我刚遇到这个问题,并在IntelliJ中重新导入项目工作。我删除了.idea目录和.iml文件,然后将项目重新导入为maven。

这是一个IntelliJ问题 - 外部maven构建工作正常。

答案 1 :(得分:0)

您的类路径不完整。对org.domain.subdomain的引用出现在我们的某个源引用的类文件中(如错误消息所示)。

如果要重写Java代码,则可能需要在每个模块的类路径中添加更多的传递依赖项。 Scala编译器在进行类型检查时更加热切,在某些情况下需要更大的类路径。

答案 2 :(得分:0)

我知道,问题已经超过一年了,但也许对某人有帮助。

我遇到了同样的问题。我的一个库使用了比主项目更新版本的org.scala-lang:scala-library。库更新后一切正常。