【问题标题】:Kotlin compile works, mvn compile and intellij run-app does notKotlin compile 有效,mvn compile 和 intellij run-app 无效
【发布时间】:2021-11-20 07:19:28
【问题描述】:

我遇到了一个非常奇怪的问题,我无法解释。

我使用 gitlab ci 制作了一个工件,现在我正在使用 maven 将其作为依赖项导入另一个项目。

当我将它导入到新项目中时,关于导入依赖项中的类,我得到了一些非常奇怪的行为。这些行为如下:

  • 在 Java 文件 (Test.java) 中,找到了包并且 Intellij 报告没有问题。我什至可以导航到库中的源代码。

  • 在 Kotlin 文件中,Intellij 抱怨找不到这个包。我无法导航到源代码,因为 IDE 显示“未解析的引用”。如果我进行 maven 工件搜索,则会找到它,但添加它没有任何区别,因为依赖项已经在我的项目中。

  • maven compile/package 也报这个包找不到

依赖是肯定存在的:

我尝试了以下方法:

  • 重新导入 maven 项目
  • 使缓存失效
  • 更改 Java 版本,8 - 11

如果这有什么不同的话,该工件是用 java 11 编写的。

请帮忙,这快把我逼疯了。

【问题讨论】:

  • 尝试在该项目的 intellij 终端中执行 mvn -U clean install。如果这没有帮助,可能值得向我们展示你的 pom.xml 的依赖部分。
  • 尝试关闭工程和IDE,在OS文件资源管理器中打开工程根目录,删除所有.iml文件和.idea目录。然后重新导入项目选择 pom.xml 文件。见jetbrains.com/help/idea/…
  • 另外,为了确保这是一个 IDE 问题,请尝试从 IntelliJ 之外的命令行执行 mvn clean install

标签: java spring maven kotlin intellij-idea


【解决方案1】:

感谢那些回答!

经过漫长的 24 小时调试,发现问题与 intellij 和 maven 如何在依赖项中查找包有关。

我正在使用 spring-boot-maven-plugin 进行编译,该插件正在构建带有顶部 BOOT-INF 目录的 jar,以及下面的包结构。

这意味着 intellij 和 maven 都感到困惑,因为他们似乎能够找到包但无法构建它。

我已经删除了插件,现在只使用 kotlin-maven-plugin 编译,它的包结构位于 jar 的顶层。

现在当我导入一个项目时,项目可以找到并编译这个依赖。

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    相关资源
    最近更新 更多