在 scala 中,通常的做法是堆叠包语句以允许更短的导入,但是当我将使用堆叠包的文件加载到 scala ide 并尝试使用从同一组织开始的导入时,我从似乎出现的编译器错误中得到演示文稿编译器。代码在 IDE 之外的 sbt 中编译得很好。
示例代码片段如下:
package com.coltfred
package util
package time
import com.github.nscala_time.time.Imports._
在导入时出现错误object github is not a member of package com.coltfred.util.com
。
如果我将导入移动到单行,错误就会消失,但是我们在代码库中经常使用这种做法,因此将它们全部更改为单行包语句会很痛苦。
为什么会发生这种情况,我能做些什么来解决它?
编辑:
我使用 eclipse-sbt 插件为此生成了 eclipse 项目文件。目录结构就是它应该的样子,所有依赖项都在类路径中。
编辑2:
原来在 util 包的测试树中有一个文件(它应该在同一个包中),但顶部有一个重复的包语句。我没有检查测试树,因为它不应该影响主树的编译,但显然我错了。