自上周以来,我刚刚开始使用Scala,我遇到的这个问题让我发疯了。
我有一些代码,我想完全从Java迁移到Scala(除了库),但是由于这个神秘的错误,我已经遇到了一个我现在无法继续的块。
假设我有一个我在 org.domain.subdomain.MyClass
中定义的课程我有一个似乎没有编译问题的类(由Intellij建议)但是当我构建项目的模块时,我会得到以下内容
缺少 MyClass 所需的类文件
包 org.domain 的参考值子域是指不存在的符号。
我确信(或几乎?)在我开始重写Scala中的代码之前,我正在编译项目路径正确。
我无法使用verbose选项进行编译。我使用FSC编译器作为项目编译器。 Intellij没有使用详细选项显示任何!
这里发生了什么? 我该如何解决这个问题?
答案 0 :(得分:1)
我刚遇到这个问题,并在IntelliJ中重新导入项目工作。我删除了.idea目录和.iml文件,然后将项目重新导入为maven。
这是一个IntelliJ问题 - 外部maven构建工作正常。
答案 1 :(得分:0)
您的类路径不完整。对org.domain.subdomain
的引用出现在我们的某个源引用的类文件中(如错误消息所示)。
如果要重写Java代码,则可能需要在每个模块的类路径中添加更多的传递依赖项。 Scala编译器在进行类型检查时更加热切,在某些情况下需要更大的类路径。
答案 2 :(得分:0)
我知道,问题已经超过一年了,但也许对某人有帮助。
我遇到了同样的问题。我的一个库使用了比主项目更新版本的org.scala-lang:scala-library。库更新后一切正常。