Skip to content

Commit 607d2e0

Browse files
Improve checkstyle task build avoidance (#80804) (#80848)
Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: Elastic Machine <[email protected]>
1 parent dde09a4 commit 607d2e0

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/precommit/CheckstylePrecommitPlugin.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,20 @@
1212
import org.elasticsearch.gradle.internal.InternalPlugin;
1313
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitPlugin;
1414
import org.gradle.api.Action;
15-
import org.gradle.api.GradleException;
1615
import org.gradle.api.Project;
1716
import org.gradle.api.Task;
1817
import org.gradle.api.artifacts.dsl.DependencyHandler;
1918
import org.gradle.api.plugins.quality.Checkstyle;
2019
import org.gradle.api.plugins.quality.CheckstyleExtension;
2120
import org.gradle.api.provider.Provider;
21+
import org.gradle.api.tasks.SourceSetContainer;
2222
import org.gradle.api.tasks.TaskProvider;
2323

2424
import java.io.File;
2525
import java.io.IOException;
2626
import java.io.InputStream;
2727
import java.io.UncheckedIOException;
2828
import java.net.JarURLConnection;
29-
import java.net.URI;
30-
import java.net.URISyntaxException;
3129
import java.net.URL;
3230
import java.nio.file.Files;
3331
import java.nio.file.StandardCopyOption;
@@ -97,14 +95,17 @@ public void execute(Task task) {
9795
t.reports(r -> r.getHtml().getRequired().set(false));
9896
});
9997

100-
return checkstyleTask;
101-
}
98+
// Configure checkstyle tasks with an empty classpath to improve build avoidance.
99+
// It's optional since our rules only rely on source files anyway.
100+
project.getExtensions()
101+
.getByType(SourceSetContainer.class)
102+
.all(
103+
sourceSet -> project.getTasks()
104+
.withType(Checkstyle.class)
105+
.named(sourceSet.getTaskName("checkstyle", null))
106+
.configure(t -> t.setClasspath(project.getObjects().fileCollection()))
107+
);
102108

103-
private static URI getBuildSrcCodeSource() {
104-
try {
105-
return CheckstylePrecommitPlugin.class.getProtectionDomain().getCodeSource().getLocation().toURI();
106-
} catch (URISyntaxException e) {
107-
throw new GradleException("Error determining build tools JAR location", e);
108-
}
109+
return checkstyleTask;
109110
}
110111
}

0 commit comments

Comments
 (0)