|
@@ -26,6 +26,8 @@ import org.gradle.api.Task;
|
|
|
import org.gradle.api.UnknownTaskException;
|
|
|
import org.gradle.api.artifacts.Configuration;
|
|
|
import org.gradle.api.artifacts.Dependency;
|
|
|
+import org.gradle.api.artifacts.ModuleDependency;
|
|
|
+import org.gradle.api.artifacts.ProjectDependency;
|
|
|
import org.gradle.api.plugins.JavaBasePlugin;
|
|
|
import org.gradle.api.plugins.JavaPluginConvention;
|
|
|
import org.gradle.api.provider.Provider;
|
|
@@ -46,7 +48,9 @@ import java.util.Arrays;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.function.Function;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
public abstract class GradleUtils {
|
|
|
|
|
@@ -139,6 +143,8 @@ public abstract class GradleUtils {
|
|
|
|
|
|
setupIdeForTestSourceSet(project, testSourceSet);
|
|
|
|
|
|
+ disableTransitiveDependenciesForSourceSet(project, testSourceSet);
|
|
|
+
|
|
|
// add to the check task
|
|
|
project.getTasks().named(JavaBasePlugin.CHECK_TASK_NAME).configure(check -> check.dependsOn(testTask));
|
|
|
|
|
@@ -232,4 +238,26 @@ public abstract class GradleUtils {
|
|
|
|| projectPath.startsWith(":x-pack:plugin")
|
|
|
|| projectPath.startsWith(":x-pack:quota-aware-fs");
|
|
|
}
|
|
|
+
|
|
|
+ public static void disableTransitiveDependenciesForSourceSet(Project project, SourceSet sourceSet) {
|
|
|
+ Stream.of(
|
|
|
+ sourceSet.getApiConfigurationName(),
|
|
|
+ sourceSet.getImplementationConfigurationName(),
|
|
|
+ sourceSet.getCompileOnlyConfigurationName(),
|
|
|
+ sourceSet.getRuntimeOnlyConfigurationName()
|
|
|
+ )
|
|
|
+ .map(name -> project.getConfigurations().findByName(name))
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .forEach(GradleUtils::disableTransitiveDependencies);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void disableTransitiveDependencies(Configuration config) {
|
|
|
+ config.getDependencies().all(dep -> {
|
|
|
+ if (dep instanceof ModuleDependency
|
|
|
+ && dep instanceof ProjectDependency == false
|
|
|
+ && dep.getGroup().startsWith("org.elasticsearch") == false) {
|
|
|
+ ((ModuleDependency) dep).setTransitive(false);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|