无main启动类的Spring Boot类库执行mvn clean package打包报错如何解决
问题原因
你当前使用Spring Boot官方父工程创建类库项目,默认绑定的spring-boot-maven-plugin插件会执行repackage目标生成可执行jar,该流程要求项目必须存在主启动类,无主类时就会触发打包失败。
解决方案
在你的pom.xml中新增Spring Boot打包插件的配置,跳过repackage执行流程即可打出可被其他项目正常依赖的普通jar包,完整配置调整如下:
新增build配置
将以下代码添加到pom.xml的</dependencies>标签之后:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <id>repackage</id> <configuration> <!-- 跳过重打包流程,不生成可执行jar --> <skip>true</skip> </configuration> </execution> </executions> </plugin> </plugins> </build>
验证打包
配置调整完成后,重新执行mvn clean package命令即可打包成功,打出的jar包为普通Java类库结构,其他项目直接引入你的项目坐标即可正常使用。
注意:跳过repackage后打出的jar不会包含Spring Boot可执行jar特有的BOOT-INF目录,所有类文件直接存放在jar包根路径,可被其他项目正常加载识别。
内容的提问来源于stack exchange,提问作者Mani
相关产品推荐
相关产品推荐

