Scala 跨多个SBT项目共享模块时,对象不是包错误的成员

Scala 跨多个SBT项目共享模块时,对象不是包错误的成员,scala,sbt,Scala,Sbt,我有一个sbt模块,在io.myapp.foo包中定义了fooObject。也就是说,可以通过io.myapp.foo.fooObject访问对象 然后我通过sbt publishLocal 在另一个Sbt项目中,我包含了这个foo对象模块 然后我尝试在包io.myapp.bar.barObject中的另一个类中使用fooObject。尽管我的IDE可以访问io.myapp.foo.fooObject,因为我得到了自动完成并且没有语法错误,但是当我尝试编译时,我得到了错误: 错误:(19,46

我有一个sbt模块,在
io.myapp.foo
包中定义了
fooObject
。也就是说,可以通过
io.myapp.foo.fooObject访问对象

然后我通过
sbt publishLocal

在另一个Sbt项目中,我包含了这个foo对象模块

然后我尝试在包
io.myapp.bar.barObject
中的另一个类中使用
fooObject
。尽管我的IDE可以访问io.myapp.foo.fooObject,因为我得到了自动完成并且没有语法错误,但是当我尝试编译时,我得到了错误:


错误:(19,46)对象foo不是包io.myapp的成员
val schemaContent:String=foooobject.someValue

不确定为什么
foo
只是包名称中的一个路径,却被称为对象

我不知道为什么会出现这种编译错误。有什么想法吗

Edit:如果我进行SBT编译,它会编译,但是当我运行测试时,我会得到所说的编译错误。这让它变得更奇怪


Edit2:这似乎是Intellij自身绊倒的一个例子。当我从sbt运行测试时,所有测试都通过了。只有当我从Intellij运行测试时,我才出现编译错误。好吧,这最终导致了太多事情同时出错……这使得我很难找出为什么会出现这种意外行为

因此,我的本地常春藤已经发布了以前版本的模块,然后我添加了要共享的对象并再次尝试发布,但失败了,我没有注意日志,其中提到发布没有成功,因为它无法覆盖现有发布的工件

同样在发生编译错误的另一个项目中,我从控制台运行compile,没有重新加载依赖项

因此,确保在重新发布之前删除并确保重新加载依赖项解决了我的问题

希望这能帮助其他人

编辑 当我从Intellij运行测试时,碰巧我仍然得到编译错误。因此,我不得不再次导入该项目..即从
文件->项目结构->模块->(删除然后读取)
之后,我现在可以从intellij运行测试

同时谈论多件不起作用/出错的事情!混乱的完美配方