Java Spring Boot多模块maven项目重新打包失败

Java Spring Boot多模块maven项目重新打包失败,java,spring-boot,spring-mvc,multi-module,spring-boot-maven-plugin,Java,Spring Boot,Spring Mvc,Multi Module,Spring Boot Maven Plugin,我目前正在学习John Thompson的Spring框架初学者到大师课程。我按照他的步骤在SpringBoot上为SpringPetClinic创建多模块maven项目。当我点击根模块上的package时,它说重新打包失败,找不到主类 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId>

我目前正在学习John Thompson的Spring框架初学者到大师课程。我按照他的步骤在SpringBoot上为SpringPetClinic创建多模块maven项目。当我点击根模块上的package时,它说重新打包失败,找不到主类

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        <executions>
            <execution>
                <goals>
                    <goal>repackage</goal>
                </goals>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </execution>
        </executions>
        </plugin>
    </plugins>
</build>

org.springframework.boot
springbootmaven插件
重新包装
真的

[错误]无法执行goal org.springframework.boot:spring boot maven plugin:2.1.6.发布:对项目宠物诊所数据重新打包(重新打包):执行goal org.springframework.boot:spring boot maven plugin:2.1.6.发布:重新打包失败:找不到主类->[Help 1]

错误本身就说明了问题。执行器找不到您的主类。它与pom.xml无关。但这一切都与您用来构建和运行spring boot项目的环境有关

如果您正在使用IntelliJ,请转到
运行/调试配置
在屏幕截图上添加配置
,在您的情况下,它可能是其他内容)并确保主类退出。然后轻触班次两次,键入
使缓存无效/重新启动
,然后同时执行这两项操作。那么它应该像预期的那样工作


您使用的是spring boot maven插件:2.1.6.RELEASE

由于SpringBoot2,您不再需要SpringBoot插件

声明模块的工件id后,可以使用以下代码

<artifactId>pet-clinic-data</artifactId>
<properties>
    <spring-boot.repackage.skip>true</spring-boot.repackage.skip>
</properties>
宠物诊所数据
真的

spring boot maven插件应仅位于包含主类的模块的pom.xml中。看起来这个插件位于(或由)一个简单的jar模块上,主模块将使用该模块作为依赖项

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

org.springframework.boot
springbootmaven插件
主类用@SpringBootApplication注释

 <configuration>
       <skip>true</skip>
   </configuration>

真的
并添加“spring boot.repackage.skip”属性,如下所示:

<artifactId>pet-clinic-data</artifactId>
    <properties>
        <spring-boot.repackage.skip>true</spring-boot.repackage.skip>
    </properties>
宠物诊所数据
真的

spring boot maven插件至少在运行spring boot v2.1.7.RELEASE和spring v5.1.9.RELEASE的应用程序中仍然是必需的。如果我注释掉插件,我的应用程序就会失败,“没有主清单属性,在.jar中”。