如题,或者在用maven打包spring boot项目时,在test环节会报错一大溜儿:
程序包XXX不存在
程序包XXX不存在
…
首先,这些报错的对象与程序包是真实存在的,并且当时的项目中存在module之间的依赖,并且module中存在相同的主目录,即:
项目A的目录为:com.abc.def.ggg
项目B的目录为:com.abc.def.hhh
其中,项目B依赖项目A,这个问题就出在执行项目B的单元测试时,找不到项目A中的对象。
解决方案为,将下列maven-plugin配置到项目A的pom文件中:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这样项目B的单元测试就能正常工作了,出错原理估计是在跑单元测试的过程中,没有智能的去找被引用的class文件,而是直接寻找了项目B的目录“com.abc.def.”,而忽略了项目A的目录“com.abc.def.”。
另外,感谢 “tianshidan1998”的分享:https://www.cnblogs.com/zyfd/p/9883473.html