【问题标题】:Compilation error in Eclipse in Kotlin + Java project, but project builds with MavenKotlin + Java项目中Eclipse中的编译错误,但项目使用Maven构建
【发布时间】:2017-09-05 02:04:46
【问题描述】:

这发生在 Eclipse 中具有 kotlin 特性的 Java 和 maven 项目中。

在这部分代码中:

    val faces = figure.getFaces()       
    for (polygon in faces) {
        //...

我在 eclipse 中得到以下错误,其中faces,在上面的第二行中,带有红色下划线:

Cannot access class 'Polygon'. Check your module classpath for missing or conflicting dependencies

该项目是 Java 和 Kotlin 的混合体。 figure 对象是 Java 类的实例,而 faces 是一组 Polygon 类型,它位于另一个纯 Kotlin 项目中(即 Polygon 是 Kotlin 类型,位于单独的 Kotlin 中项目)。

Polygon 所在的 Kotlin 项目确实作为 Maven 依赖项存在于类路径中,并且实际上由 figure 是其实例的 Java 类使用。

我认为问题出在 Eclipse 中,因为我可以使用 maven 成功构建项目。它看起来像是 Eclipse 中的错误或配置问题。

我知道混合使用 Java 和 Kotlin 很奇怪。我只是用 Java 开始了这个项目,然后决定逐渐将其转换为 Kotlin。到目前为止,我还没有遇到很多问题,但我知道 Eclipse 中的 Kotlin 工具和支持还不成熟。

【问题讨论】:

  • 您使用的是最新版本的 Kotlin 吗?如果您使用 PolygonKt 而不是 Polygon,Eclipse 会喜欢它吗?如果这是问题所在,那么您需要更新 Eclipse 配置,以便它使用新版本的 Kotlin 进行语法检查/智能。
  • Eclipse 的 Kotlin 插件已经有几个月没有更新了。也许咬紧牙关,为这个项目转换为 IntelliJ。
  • 你能把你的Polygen-class的完整路径从你的项目的主目录开始。
  • 感谢您的回复。我正在使用 v1.1.1。更新的版本不适用于该插件。 @guenhter 我不确定你的意思,该类的项目是另一个 maven 依赖项,来自我的 maven 本地 repo
  • 好的,所以 Polygin 可以通过 Jar 文件获得。谢谢

标签: java eclipse maven kotlin


【解决方案1】:

不太合适的解决方案:我将 Figure 类转换为 Kotlin,问题就消失了,但我可以这样做,因为我可以完全控制我的项目。

可能较新版本的 eclipse 插件不会产生此错误,或者,如 cmets 中所建议的,切换到 IntelliJ IDEA 是另一种选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2019-08-07
    相关资源
    最近更新 更多