in maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java [3097:3149]
public Set<Artifact> getProviderClasspath() throws MojoExecutionException {
String surefireVersion = getBooterArtifact().getBaseVersion();
Map<String, Artifact> providerArtifacts = surefireDependencyResolver.getProviderClasspathAsMap(
session.getRepositorySession(),
project.getRemotePluginRepositories(),
getProviderArtifactName(),
surefireVersion);
Map<String, Artifact> testDeps = testClasspath.getTestDependencies();
Plugin plugin = getPluginDescriptor().getPlugin();
Map<String, Artifact> pluginDeps = surefireDependencyResolver.resolvePluginDependencies(
session.getRepositorySession(),
project.getRemotePluginRepositories(),
plugin,
getPluginArtifactMap());
if (hasDependencyPlatformEngine(pluginDeps)) {
providerArtifacts.putAll(pluginDeps);
} else {
String engineVersion = null;
if (hasDependencyJupiterAPI(testDeps)
&& !testDeps.containsKey("org.junit.jupiter:junit-jupiter-engine")) {
String engineGroupId = "org.junit.jupiter";
String engineArtifactId = "junit-jupiter-engine";
String engineCoordinates = engineGroupId + ":" + engineArtifactId;
String api = "org.junit.jupiter:junit-jupiter-api";
engineVersion = testDeps.get(api).getBaseVersion();
getConsoleLogger()
.debug("Test dependencies contain " + api + ". Resolving " + engineCoordinates + ":"
+ engineVersion);
addEngineByApi(engineGroupId, engineArtifactId, engineVersion, providerArtifacts);
}
if ((testDeps.containsKey("junit:junit") || testDeps.containsKey("junit:junit-dep"))
&& !testDeps.containsKey("org.junit.vintage:junit-vintage-engine")) {
String engineGroupId = "org.junit.vintage";
String engineArtifactId = "junit-vintage-engine";
String engineCoordinates = engineGroupId + ":" + engineArtifactId;
if (engineVersion != null) {
getConsoleLogger()
.debug("Test dependencies contain JUnit4. Resolving " + engineCoordinates + ":"
+ engineVersion);
addEngineByApi(engineGroupId, engineArtifactId, engineVersion, providerArtifacts);
}
}
}
narrowDependencies(providerArtifacts, testDeps);
alignProviderVersions(providerArtifacts);
return new LinkedHashSet<>(providerArtifacts.values());
}