【问题标题】:SpringBoot Kotlin project wont run and debug from IntellijSpring Boot Kotlin 项目不会从 Intellij 运行和调试
【发布时间】:2018-10-18 04:06:48
【问题描述】:

我们继承了一个用 Kotlin 编写的 SpringBoot 项目。使用 Intellij,我希望能够转到 Application main 方法并单击绿色箭头来启动项目。我还希望能够在调试模式下运行项目并设置断点,这仅适用于测试。

当我尝试运行该项目时,我得到了一个exception FileNotFound,它没有给我任何答案。每个文件似乎都被考虑在内,显然没有任何遗漏。

这是一个具有许多独特配置的多模块 gradle 项目,我怀疑其中一个会导致问题。我无法确定哪个配置导致了问题,因为该项目似乎甚至没有达到站立 Spring 的地步(没有横幅)。

我尝试了许多不同的 bash 脚本、环境变量和 gradle 任务组合,但项目似乎根本无法运行。有什么方法可以使用 Intellij 调试配置序列和 gradle 任务?

【问题讨论】:

    标签: spring intellij-idea kotlin


    【解决方案1】:

    所以,我正在回答我自己的问题,因为搜索让我无处可去,这是一个令人惊讶的难以调试的问题。事实证明我采取了错误的方法并提出了错误的问题。我花了很多时间研究 Spring 配置和 Gradle 任务,以意识到我们的东西都没有错。 Kotlin 编译器一开始就失败了。

    发生的事情是,一位开发人员天真地 cd'ed 进入应用程序的模块并运行 echo 语句,将 gradle 输出通过管道传输到名为 out 的文件中,没有扩展名。

    Kotlin 会找到这个文件,然后继续不编译任何从 Application main 开始的东西。当我们从终端运行应用程序时,应用程序会从一开始就重新编译自己,没有任何问题。但是自动生成的 Intellij 配置每次都只是简单地运行带有错误文件的应用程序。

    麻烦的部分是我们的.gitignore 文件被配置为忽略所有 kotlin /out/ 目录,而不是像/out 这样的文件,所以这很麻烦文件被提交到存储库很长一段时间。

    令人惊讶的是,删除此 out 文件修复了我们项目在 Intellij 中遇到的大部分问题。

    另一个说明: 我们的脚本也被设置为 source 来自其他脚本的某些变量,这意味着我们要么必须将它们带到运行时配置中。我们还可以从我们已经在其中sourced 脚本的同一终端运行 Intelli(使用工具> 创建命令行启动器)。一旦我进行了排序,项目就可以完美地运行和调试。

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 1970-01-01
      • 2021-11-30
      • 2016-03-15
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 2019-09-16
      • 2020-12-31
      相关资源
      最近更新 更多