首页 > 解决方案 > 最初构建 Spring Boot 模块时,我的 iml 文件中的 sourceFolder 不正确

问题描述

所以我设置了我最初的 spring-boot 项目:

在此处输入图像描述

然后在 IntelliJ 中,我构建了 rest-service 模块,我的结构更改为:

在此处输入图像描述

然后,如果我尝试运行该项目,mvn spring-boot:run我会收到错误消息:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.2.2.RELEASE:run (default-cli) on project rest-service: Unable to find a suitable main class, please add a 'mainClass' property -> [Help 1]

所以我必须进入我的 rest-service.iml 文件,并改变它:

    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>

对此:

    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>

我的问题是,我最初是否错误地设置了项目?

标签: javaspringspring-bootmaven

解决方案


您的 Maven 项目布局不正确。实际的源文件夹 ( com) 应该位于 src/main/java 文件夹下,而不是src像共享的屏幕截图那样直接位于该文件夹下。maven 项目的正确布局应如下所示 -

└────maven-project
    ├────pom.xml
    └───src
        ├────主要
        │ ├───java
        │ └───资源
        └────测试
            ├────java
            └────资源

查看Apache Maven 标准目录布局以获取完整的详细信息。

您还可以使用spring-initializr创建一个包含所有依赖项的框架项目,然后在 intellij(或 eclipse)中按原样导入该项目,并将其用于进一步开发。

另外,附带说明一下,通常不需要直接在 intellij .iml 文件中更改任何内容。任何需要这样做都意味着您在其他地方遗漏了一些东西,在这种情况下是项目布局。


推荐阅读