我们继承了用Kotlin编写的SpringBoot项目。使用Intellij,我希望能够转到Application main方法并单击绿色箭头以启动项目。我还希望能够在调试模式下运行项目并设置断点,这仅适用于测试。
当我尝试运行该项目时,我得到一个exception FileNotFound
,但没有得到任何答案。每个文件似乎都已被考虑,并且显然没有丢失。
这是一个具有许多独特配置的多模块gradle项目,我怀疑是一个问题。我无法确定导致该问题的配置,因为该项目甚至似乎都无法站起Spring(没有横幅)。
我尝试了bash脚本,环境变量和gradle任务的许多不同组合,并且该项目似乎根本没有运行。有什么方法可以使用Intellij调试配置和gradle任务的顺序吗?
答案 0 :(得分:1)
因此,我正在回答自己的问题,因为搜索无处可寻,这是一个调试起来非常困难的问题。事实证明,我采用了错误的方法并提出了错误的问题。我花了很多时间研究Spring配置和Gradle任务,以发现我们的东西都没有错。 Kotlin编译器在一开始就失败了。
发生了什么事,一个开发人员天真地cd
进入了应用程序的模块,并运行了一条echo
语句,将gradle输出通过管道传输到了一个没有扩展名的out
文件中。
Kotlin将找到该文件,然后继续进行不编译从Application main开始的任何内容。当我们从终端运行该应用程序时,该应用程序将从一开始就重新编译自身,不会出现任何问题。但是自动生成的Intellij配置每次都只用错误文件运行应用程序。
令人不安的是,我们的.gitignore
文件被配置为忽略所有kotlin /out/
目录,而不是像{{ 1}},所以这个麻烦的文件已经提交给存储库一段时间了。
令人惊讶的是,删除此/out
文件解决了我们的项目与Intellij有关的大多数问题。
另一个说明:
我们的脚本还设置为out
来自其他脚本的某些变量,这意味着我们要么必须将它们带到运行时配置中。我们也可以从已经source
在其中运行脚本的同一终端运行Intelli(使用“工具”>“创建命令行启动器”)。一旦完成排序,项目就可以运行并完美调试了。