【问题标题】:Issue running existing spring boot gradle project运行现有 Spring Boot gradle 项目的问题
【发布时间】:2020-07-21 05:01:05
【问题描述】:

最近,我开始研究一个多模块 spring boot gradle 项目。我是 gradle 和团队的新手,但我对 Spring boot 有一些经验。

结构就像主项目不包含java文件,只有gradle和config信息,然后它的子项目包含spring boot项目。当我尝试运行该项目时,我得到 Main Class not found 错误,即使该类存在

我知道必须进行一些配置才能运行它,但我无法确定如何获取详细信息。

这是一个老项目,没有人知道任何细节。有人可以帮助了解如何挖掘 gradle 文件以获取配置或至少启动项目吗?

编辑:

好吧,不知何故,我决定忽略 IDE 并玩弄命令。我发现 jar 无法识别根文件夹中的 yml 文件(从 gradle build 创建)。如上所述,Spring boot 项目位于子项目中,其中根文件夹中的配置(yml 文件)。

我在 java -jar 中添加了 --spring.config.location ,但后来了解到该 jar 是在没有依赖关系的情况下生成的。知道如何将它们添加到类路径中或构建带有依赖项的 jar 吗?

【问题讨论】:

  • 查找 @springbootapplication 注释类。这是主要功能
  • 好的,子项目有spring boot应用。我对它并不陌生,但问题是项目在运行时,无法进入主类并在从 Spring Tool Suite 运行时抛出此错误,如果通过 intellij 执行,我得到 Unable to start command '/path to jdk '。

标签: java spring spring-boot gradle multi-module


【解决方案1】:

这实际上取决于项目,可能没有主类。

如果您的项目是基于 .jar 的:

Gradle 多项目通常有主 Gradle 模块,但是,主类不需要在主目录中。

这可能在另一个模块中。如果您在完成索引项目后拥有 Intellij,您将在右上角看到运行该类(靠近绿色三角形),如果您将其展开,您将能够看到“编辑配置...”。

然后选择你之前看到的类,通常如果项目使用 Spring Boot,左侧的配置列表中会出现 Spring Boot 图标。

一旦您选择了“环境树”类,就会有“使用模块的类路径”字段,您将看到正确的启动模块。


如果您的项目基于战争档案:

你不会有任何主要课程。

作为旁注,我建议查看项目的设置或自述文件。

【讨论】:

  • 它有点棘手,或者可能是我在做一些愚蠢的事情,我在使用 Spring 工具套件时遇到 Main class not found 异常,如果我使用 intellij,它没有提供运行项目的选项。只有 gradle 任务可用,gradle build 运行成功,但任务 bootRun 失败并出现错误,“文件名或扩展名太长”。只有进一步分析,错误来自错误“A problem occurred starting process command '/path to jdk'”
  • 您是否将 java_home 定义为环境路径变量?是私有项目吗,能否提供一个仓库链接?
  • 您好,谢谢,但这是一个私人项目,无法共享,我已经从团队中找到了可以帮助我的人。如果我有更多信息,我会回来的。
猜你喜欢
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 2020-10-18
  • 2021-09-03
  • 2022-01-01
  • 2020-12-27
相关资源
最近更新 更多