【发布时间】:2019-05-23 12:25:54
【问题描述】:
我正在尝试将 som Kotlin 文件包含在一个相当大的 IntelliJ Java 项目中,我偶然发现了一个案例,我在每次导入时都会得到“未解决的引用”。
(简化项目结构:
Project:
saksbehandling
- e2e
- cucumber
- src
- test
- java
-e2e
- support
- common
- src
- main
- java
- common
- testdata
support 模块中的 Kotlin 类可以正常工作。 common 模块中的 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 模块也无济于事,而且这也不是一个好主意。
任何想法如何解决这个可能很愚蠢的新手问题?
顺便说一句:此外,当在 common 模块中创建 Kotlin 文件时,没有导入工作,突然 cucumber 模块中的工作 Kotlin 文件也开始变得未解析在创建新文件之前一直在工作的事情的参考。
更新:
使用此链接:https://www.baeldung.com/kotlin-maven-java-project 调整 .pom 文件,我能够让大部分导入工作。
但是,一些奇怪的事情仍然无法正常工作:
import 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,情况会更好。但是我无法将这些类导入黄瓜模块中的类中。
【问题讨论】:
-
你能在 IntelliJ 之外很好地构建你的项目吗?作为一个附带问题,你在使用 Gradle 吗?是否有理由不将 Kotlin 文件放在
src/main/kotlin中?
标签: java intellij-idea kotlin