问题描述
SpringBoot项目,在idea中点击maven的install命令报出XXX包不存在,XXX类不存在,打包失败,检查项目,发现这些包和类是存在的,项目中无报红和警告,能够正常启动。
问题原因
默认情况下,在pom文件中的maven插件配置如下所示:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这样配置的时候springboot-maven-plugin打包的第一级目录为Boot-INF,这时候直接mvn clean install(package)会发现无法把本地的jar打进Boot-INF中,因此发生找不到程序包异常。
问题解决
聚合工程中,存在A项目依赖B项目的情况下,我们在B项目(被依赖项目)的pom文件做如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
就是在原来的maven插件中增加一个配置:
<configuration>
<skip>true</skip>
</configuration>
这样就不会打包到Boot-Inf中,配置完后点击clean-install,成功!