【问题标题】:Following Spring-Boot Intro, "Unable to find a suitable main class, please add a 'mainClass' property"在 Spring-Boot Intro 之后,“无法找到合适的主类,请添加 'mainClass' 属性”
【发布时间】:2019-03-31 21:02:27
【问题描述】:

按照 Spring-Boot 教程,尝试使用 $ mvn spring-boot:run 运行,出现错误:“无法找到合适的主类...”我该如何超越?

(使用 Ubuntu)

我已按照本教程尝试使用 Spring-Boot:

https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-first-application.html

直到 11.4。当我进入

$ mvn spring-boot:run

我最终得到了这个错误:


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

我以为我已经按照每个方向去了 T。应该在这一步运行的 Example.java 位于此处,

folder/src/main/java/Example.java 

名为“文件夹”的文件夹包含 maven 的 pom 文件以及其他所有文件。 Maven 读取该 pom 文件没有任何问题。

来自堆栈跟踪:


Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to find a suitable main class, please add a 'mainClass' property

我该怎么办?所有其他问题似乎都与目录结构或更复杂的东西有关。我这里哪里出错了?

【问题讨论】:

    标签: xml maven spring-boot ubuntu installation


    【解决方案1】:

    我不知道你做了什么,看来你没有启动应用程序的主要功能。我刚刚做了一个项目文件夹,然后我用

    创建了 pom.xml 文件
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.example</groupId>
        <artifactId>myproject</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.3.RELEASE</version>
        </parent>
    
        <!-- Additional lines to be added here... -->
    
    </project>
    

    然后我将我的 pom.xml 修改为下面的内容

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.example</groupId>
        <artifactId>myproject</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.3.RELEASE</version>
        </parent>
    
      <dependencies>
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
      </dependencies>
    
        <!-- Additional lines to be added here... -->
    
    </project>
    

    并按如下方式创建了我的项目/src/main/java/Example.java(等于参考中的Exmaple.java)

    import org.springframework.boot.*;
    import org.springframework.boot.autoconfigure.*;
    import org.springframework.web.bind.annotation.*;
    
    @RestController
    @EnableAutoConfiguration
    public class Example {
    
        @RequestMapping("/")
        String home() {
            return "Hello World!";
        }
    
        public static void main(String[] args) {
            SpringApplication.run(Example.class, args);
        }
    
    }
    

    然后我去项目根目录输入

    $mvn spring-boot:run
    

    它成功了。

    【讨论】:

    • 谢谢。我拿了旧的 Example.java 文件,将其删除,然后创建了一个新文件。我一定是做错了命名它,我不知道。工作得很好,感谢您让我知道这是主要功能的问题,而不是有关获取它的一些配置。非常感谢。
    【解决方案2】:

    关键是设置正确的目录结构如下:myproject/src/main/jave。将 pom.xml 放在 myproject 文件夹中,将 java 代码放在 java 文件夹中。

    【讨论】:

    • 你能解释一下你的答案比接受的答案增加了什么吗?是什么让您的答案更好地帮助人们?这似乎是相同的解决方案,但解释较少
    猜你喜欢
    • 2022-01-22
    • 2020-12-21
    • 1970-01-01
    • 2022-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多