我知道了,所以我在回答自己的问题,以防其他人遇到相同的问题。
事实证明,maven-failsafe-plugin不会将target /
classes目录添加到类路径,而是将生成的jar添加到大多数情况下可以正常工作。
但是,当涉及到Spring Boot时,生成的jar包含Spring Boot自定义类加载器类,而不是target /
classes目录的内容,这些内容已移至目录BOOT-INF / classes。由于maven-failsafe-
plugin使用“常规”类加载器,因此它仅加载Spring Boot类加载器类,因此首先会失败,因此预计将使用其中一个项目类。
为了在Spring Boot项目中运行IT测试,必须从依赖项中排除打包的jar,然后添加原始的,未修改的jar或target /
classes目录,这就是我所做的。
maven-failsafe-plugin和Spring Boot的正确配置是:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.21.0</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> <configuration> <classpathDependencyExcludes> <classpathDependencyExcludes>${groupId}:${artifactId}</classpathDependencyExcludes> </classpathDependencyExcludes> <additionalClasspathElements> <additionalClasspathElement>${project.build.outputDirectory}</additionalClasspathElement> </additionalClasspathElements> </configuration></plugin>


