SpringBoot Kotlin项目无法从Intellij运行和调试

时间:2018-10-18 04:06:48

标签: spring intellij-idea kotlin

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

当我尝试运行该项目时,我得到一个exception FileNotFound,但没有得到任何答案。每个文件似乎都已被考虑,并且显然没有丢失。

这是一个具有许多独特配置的多模块gradle项目,我怀疑是一个问题。我无法确定导致该问题的配置,因为该项目甚至似乎都无法站起Spring(没有横幅)。

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

1 个答案:

答案 0 :(得分:1)

因此,我正在回答自己的问题,因为搜索无处可寻,这是一个调试起来非常困难的问题。事实证明,我采用了错误的方法并提出了错误的问题。我花了很多时间研究Spring配置和Gradle任务,以发现我们的东西都没有错。 Kotlin编译器在一开始就失败了。

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

Kotlin将找到该文件,然后继续进行不编译从Application main开始的任何内容。当我们从终端运行该应用程序时,该应用程序将从一开始就重新编译自身,不会出现任何问题。但是自动生成的Intellij配置每次都只用错误文件运行应用程序。

令人不安的是,我们的.gitignore文件被配置为忽略所有kotlin /out/ 目录,而不是像{{ 1}},所以这个麻烦的文件已经提交给存储库一段时间了。

令人惊讶的是,删除此/out文件解决了我们的项目与Intellij有关的大多数问题。

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