【问题标题】:Unresolved Kotlin reference in mixed Java/Kotlin multimodule project in IntelliJIntelliJ 中混合 Java/Kotlin 多模块项目中未解决的 Kotlin 引用
【发布时间】:2021-01-25 06:49:19
【问题描述】:

作为标题。 gradle build 在命令行中工作。所有测试通过。然而,在 IntelliJ 中,listOf()setOf()coerceAtMost() 等内容得到了 unresolved reference。基本上是一些 Kotlin 原生库函数。

我的 IntelliJ Kotlin 插件版本是 1.3.72,我在 build.gradle 文件中强制使用 1.3.72。我的 IntelliJ 版本是 2020.2。我已经多次“使缓存无效/重新启动”。

我的项目结构如下:

root
-- build.gradle
-- settings.gradle
-- server-root
  -- server-base
    -- src/main/java
    -- src/main/kotlin
    -- test/java
    -- test/kotlin
    -- build.gradle
  -- server-module-1
    // empty for now
  -- server-module-2
    // empty for now

我的基地root/settings.gradle

...
include(":server-base")
...
project(":server-base").projectDir = file('server-root/server-base')

我的基地root/build.gradle

plugins {
    id "io.freefair.lombok" version "5.2.1" apply false
    id "org.jetbrains.kotlin.jvm" version "1.3.72" apply false
    id "nebula.lint" version "16.9.0"
    id 'idea'
}

allprojects {
    repositories {
        mavenCentral()
    }
}

我的server-root/server-base/build.gradle

plugins {
    id 'java'
    id "io.freefair.lombok"
    id "org.jetbrains.kotlin.jvm"
}

dependencies {
    implementation project(:'server-module-1')
    ...
}

我基本上已经尝试了所有我能找到的 StackOverflow 解决方案,但 IntelliJ 仍然给我这个问题。有什么建议吗?

【问题讨论】:

  • 是否构建 |重建项目行动工作?
  • 试用文件 |使缓存无效/重新启动.. |通过 File | 使操作无效并重新启动并打开项目新 | Project from Existing Sources 操作并选择要从中导入的主 bu​​ild.gradle 文件。还可以尝试jetbrains.com/idea/download 的版本如果问题仍然存在,请提供示例项目和压缩日志以进行检查(帮助 | 收集日志和诊断数据操作)。
  • 检查我的答案。最简单的修复方法解决了非常奇怪的情况>.>

标签: java kotlin gradle intellij-idea


【解决方案1】:

我将 Kotlin 插件更新到最新版本:203-1.4.21-release-IJ6682.9。 (使用 IntelliJ 更新程序,而不是手动下载)。还有我的 IntelliJ 版本到 2020.3。

因此,即使 Kotlin 插件版本不是 Gradle 设置的 Kotlin 版本,它也可以工作..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 2018-08-03
    • 2020-03-09
    相关资源
    最近更新 更多