Java项目中的Kotlin,未解决的引用

时间:2019-05-23 12:25:55

标签: java intellij-idea kotlin

我试图将som Kotlin文件包含在一个相当大的IntelliJ Java项目中,但我偶然发现了一个案例,其中绝对每次导入都会得到“未解决的引用”。

(简化的项目结构:

Project:
saksbehandling
- e2e 
   - cucumber
    - src
      - test
        - java
          -e2e
            - support
   - common
    - src
      - main
        - java
          - common
            - testdata
支持模块中的

Kotlin类可以正常工作。 常用模块中的Kotlin类没有。

同一文件位于/ e2e / cucumber / src / test / java / e2e / support和/ e2e / common / src / main / java / common / testdata文件夹中。在后者中,当我尝试任何类型的导入时,都会得到“未解析的引用”。示例:

import api.utils.ApiResourceFactory
import com.google.common.io.Resources
import e2e.utils.AdressIterator

现在,api.utils和e2e.utils未解析的引用是一回事。但是com.google参考吗?那告诉我有些东西严重丢失或损坏。

我一直在寻找有冲突的版本等,但是它们都是同一个项目,那么问题如何与之相关?另外,使 common 模块依赖于 cucumber 模块也无济于事,这也不是一个好主意。

有什么办法解决这个可能很愚蠢的新手问题吗?

BTW:此外,当在 common 模块中创建Kotlin文件(无法导入)时,突然在 cucumber 模块中工作的Kotlin文件也开始变得无法解析创建新文件之前一直在使用的内容进行引用。

更新:

使用此链接:https://www.baeldung.com/kotlin-maven-java-project调整.pom文件,我能够使大多数导入工作。

但是,一些奇怪的事情仍然无法解决:

导入kotlin.collections.ArrayList 仍给出“未解决的引用:ArrayLIst”

在代码中,我在下面得到“未解决的引用”

listOf()
educationMap[fnr] (the []'s - No set method providing array access
ComplaiuntWhoEnum::class.java.enumConstants - Unresolved reference: Java

我甚至收到有关Unresolve参考的错误:Int(!)

更新2:

如果我创建一个文件夹/ common / src / main / kotlin,情况看起来会更好。但是,然后我无法将这些类导入黄瓜模块中的类。

1 个答案:

答案 0 :(得分:0)

如果您的构建在IntelliJ之外失败,则可能应该从修复此问题开始。也许发布您得到的错误以及您的构建配置以获取帮助。

如果一切都在IntelliJ IDEA之外运行,则可能是模块的配置已过时,IntelliJ很难对其进行修复。

到目前为止,在IntelliJ中重新组织模块时,有2种解决方案对我有用:

  • File > Invalidate caches / Restart
  • 如果第一个不起作用,请尝试删除项目,删除IDEA文件并重新导入