我将一个包含生成类的目录添加到我的 Maven 配置中。这会导致 Maven 停止执行测试。这是 pom.xml 中包含编译器插件的部分。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
<configuration>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/main/java</compileSourceRoot>
<compileSourceRoot>${project.basedir}/src/main/resources</compileSourceRoot>
<compileSourceRoot>${project.build.directory}/generated-sources/openapi/src/gen/java</compileSourceRoot>
</compileSourceRoots>
</configuration>
</plugin>
当调用maven时(例如
mvn clean package
),会执行测试阶段,但不会运行任何测试。
问题是,该配置也在 testCompile 阶段使用,因此没有编译测试类。然后,surefire 发现没有要执行的测试。
解决方案是仅在编译阶段更改配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/main/java</compileSourceRoot>
<compileSourceRoot>${project.basedir}/src/main/resources</compileSourceRoot>
<compileSourceRoot>${project.build.directory}/generated-sources/openapi/src/gen/java</compileSourceRoot>
</compileSourceRoots>
</configuration>
</execution>
</executions>
</plugin>