Ensure that check for unnecessary exclusions runs on classpath change

Closes gh-37307
This commit is contained in:
Andy Wilkinson 2023-09-13 10:19:02 +01:00
parent 5bbd4bba91
commit 0b3a5f2489

View File

@ -38,6 +38,8 @@ import org.gradle.api.artifacts.ModuleDependency;
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
import org.gradle.api.artifacts.dsl.DependencyHandler;
import org.gradle.api.artifacts.result.ResolvedArtifactResult;
import org.gradle.api.file.FileCollection;
import org.gradle.api.tasks.Classpath;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.TaskAction;
@ -61,6 +63,8 @@ public class CheckClasspathForUnnecessaryExclusions extends DefaultTask {
private final ConfigurationContainer configurations;
private Configuration classpath;
@Inject
public CheckClasspathForUnnecessaryExclusions(DependencyHandler dependencyHandler,
ConfigurationContainer configurations) {
@ -72,11 +76,17 @@ public class CheckClasspathForUnnecessaryExclusions extends DefaultTask {
}
public void setClasspath(Configuration classpath) {
this.classpath = classpath;
this.exclusionsByDependencyId.clear();
this.dependencyById.clear();
classpath.getAllDependencies().all(this::processDependency);
}
@Classpath
public FileCollection getClasspath() {
return this.classpath;
}
private void processDependency(Dependency dependency) {
if (dependency instanceof ModuleDependency) {
processDependency((ModuleDependency) dependency);