Spring Initializr生成的Maven项目在Eclipse中如何指定唯一主类?
报错根因
项目中存在两个包含main方法的Spring Boot启动类(你新增的hello.Application和Spring Initializr默认生成的com.springdockertest.springbootdocker.SpringBootDockerApplication),Spring Boot Maven插件无法自动识别要执行的目标主类,因此抛出该错误。
解决方案1:在Maven插件配置中指定主类
修改pom.xml中spring-boot-maven-plugin的配置,添加<configuration>节点明确指定要使用的主类全限定名即可,示例如下:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 新增配置指定主类 --> <configuration> <mainClass>hello.Application</mainClass> </configuration> </plugin> </plugins> </build>
配置完成后重新执行spring-boot:run即可正常启动。
解决方案2:通过全局属性指定主类
也可以在pom.xml的<properties>节点添加start-class属性指定全局主类,该配置对插件运行、打包等所有场景都生效:
<properties> <java.version>11</java.version> <!-- 新增全局主类配置 --> <start-class>hello.Application</start-class> </properties>
可选快速解决方式
如果你不需要使用Spring Initializr自动生成的默认启动类com.springdockertest.springbootdocker.SpringBootDockerApplication,直接删除该文件即可消除主类冲突,无需额外修改pom.xml配置。
内容的提问来源于stack exchange,提问作者von spotz
相关产品推荐
相关产品推荐

