我在IntelliJ中有一个Kotlin项目,其结构如下:
其中Bar
定义为:
internal class Bar
和BarTest
类似于:
class BarTest {
private lateinit var bar: Bar
}
我在参考消息Bar
时在IntelliJ中遇到编译器错误:
无法访问“酒吧”:它在“ com.foo”内部
但是,这些测试是从命令行编译并运行的(通过Gradle)。
使用IntelliJ时如何抑制/删除此错误?
我的设置是:
答案 0 :(得分:1)
我使用相同的IntelliJ安装同时打开了两个项目:
internal
源代码树中的main
类进行单元测试(都在同一IntelliJ模块的边界之内)IntelliJ在以前的设置中仍然没有出错的事实使我得出结论,该问题与我的IntelliJ设置无关。正如@JaysonMinard所建议的那样,我研究了Gradle配置的差异。
区别在于当前项目的顶级settings.gradle
,我使用重命名模块的惯例,例如:
findProject(':module-blah')?.name = 'blah'
...以便在我的项目浏览器中连续列出它们时,以较短的名称引用我的Gradle项目(而不是按字母顺序分散在其他文件中)。删除此快捷方式可以恢复我在单元测试中寻找的行为。