这个问题一般出在多级模块打包时候。
1.排除掉网上说的那些 编码不统一的问题后.
2.自己的模块引入了spring-boot-maven-plugin的打包插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.1.4.RELEASE</version> </plugin> </plugins> </build>
3.问题分析:spring-boot-maven-plugin的插件在工程打包编译时,会生成两种jar包,一种是普通的jar,另一种是可执行jar。默认情况下,这两种jar的名称相同,在不做区分的情况下,普通的jar先生成,可执行jar后生成,所以可执行jar会覆盖普通的jar,这样就导致自己其他模块在引用时为可执行的jar,导致不能找到具体的代码类,所以包此类错误。
5.解决方案,需要打包成普通jar的pom中加入以下配置,作用为生成的可执行jar名称后边加入exec,这样就不影响普通jar的引用了.
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>