解决spring-boot-maven-plugin:2.2.1.RELEASE:repackage failed: Unable to find main class

本文详细介绍了如何解决使用spring-boot-maven-plugin插件进行项目打包时出现的无法找到主类的问题。通过调整插件配置及项目结构,确保只有可执行的子项目被打包。

解决:Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.2.1.RELEASE:repackage failed: Unable to find main class

这个大坑整了我一晚上,现在解决了做个总结:
首先我们看报错原因,为什么会说不能找到主类?其次我们定位一下我们项目中配了spring-boot-maven-plugin:2.2.1.RELEASE的位置。

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

1.首先理解这段代码的作用:spring-boot-maven-plugin插件是将springboot的应用程序打包成fat jar的插件。spring boot 借助spring-boot-maven-plugin将所有应用启动运行所需要的jar都包含进来,从逻辑上将具备了独立运行的条件。
2.spring-boot-maven-plugin打包条件:会去扫描项目的main方法,也就是说,引入改配置,你就需要在src/java/mian下写一个启动类。

好,知道了前提引入我的开发环境。
在这里插入图片描述
如图,父子项目中,只有service下的两个项目为可执行jar包,其他的都不可执行。错就错在在主类添加了spring-boot-maven-plugin插件,导致install项目时,去扫描了model、common等不可执行的文件。

解决:将父类中的spring-boot-maven-plugin插件注释掉,并确保子项目不可执行项目中没有spring-boot-maven-plugin插件配置。
在这里插入图片描述
(resource内的内容为将配置文件一块打包)

至此,我们reload后再clean、install试试。
在这里插入图片描述
成功!

多嘴说一句:开发搭环境的时候不要盲目的配置插件,要了解该插件是否满足自己的开发需求。

贴上一篇给我启发的文章链接:
https://blog.youkuaiyun.com/qq_41264674/article/details/106539584

以上仅满足解决个人的开发问题,大家仅作参考,若有说的不正确的地方欢迎指出。谢谢!继续去刚代码了。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tplink.cloud.demo</groupId> <artifactId>demo-kafka</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo-kafka</name> <description>demo-kafka</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.1.6.RELEASE</spring-boot.version> <spring-kafka.version>2.2.13.RELEASE</spring-kafka.version> <kafka-clients.version>2.2.1</kafka-clients.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>${spring-kafka.version}</version> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>${kafka-clients.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <mainClass>com.tplink.cloud.demo.demokafka.DemoKafkaApplication</mainClass> <skip>true</skip> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> 这样可以吗
09-05
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值