@@ -20,6 +20,7 @@ package org.elasticsearch.gradle
20
20
21
21
import com.carrotsearch.gradle.junit4.RandomizedTestingTask
22
22
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
23
+ import org.apache.commons.io.IOUtils
23
24
import org.apache.tools.ant.taskdefs.condition.Os
24
25
import org.eclipse.jgit.lib.Constants
25
26
import org.eclipse.jgit.lib.RepositoryBuilder
@@ -53,6 +54,7 @@ import org.gradle.internal.jvm.Jvm
53
54
import org.gradle.process.ExecResult
54
55
import org.gradle.util.GradleVersion
55
56
57
+ import java.nio.charset.StandardCharsets
56
58
import java.time.ZoneOffset
57
59
import java.time.ZonedDateTime
58
60
/**
@@ -67,8 +69,13 @@ class BuildPlugin implements Plugin<Project> {
67
69
+ ' elasticearch.standalone-rest-test, and elasticsearch.build '
68
70
+ ' are mutually exclusive' )
69
71
}
70
- if (GradleVersion . current() < GradleVersion . version(' 4.9' )) {
71
- throw new GradleException (' Gradle 4.9+ is required to use elasticsearch.build plugin' )
72
+ final String minimumGradleVersion
73
+ InputStream is = getClass(). getResourceAsStream(" /minimumGradleVersion" )
74
+ try { minimumGradleVersion = IOUtils . toString(is, StandardCharsets . UTF_8 . toString()) } finally { is. close() }
75
+ if (GradleVersion . current() < GradleVersion . version(minimumGradleVersion. trim())) {
76
+ throw new GradleException (
77
+ " Gradle ${ minimumGradleVersion} + is required to use elasticsearch.build plugin"
78
+ )
72
79
}
73
80
project. pluginManager. apply(' java' )
74
81
project. pluginManager. apply(' carrotsearch.randomized-testing' )
@@ -153,14 +160,6 @@ class BuildPlugin implements Plugin<Project> {
153
160
}
154
161
println " Random Testing Seed : ${ project.testSeed} "
155
162
156
- // enforce Gradle version
157
- final GradleVersion currentGradleVersion = GradleVersion . current();
158
-
159
- final GradleVersion minGradle = GradleVersion . version(' 4.3' )
160
- if (currentGradleVersion < minGradle) {
161
- throw new GradleException (" ${ minGradle} or above is required to build Elasticsearch" )
162
- }
163
-
164
163
// enforce Java version
165
164
if (compilerJavaVersionEnum < minimumCompilerVersion) {
166
165
final String message =
@@ -391,6 +390,9 @@ class BuildPlugin implements Plugin<Project> {
391
390
project. configurations. compile. dependencies. all(disableTransitiveDeps)
392
391
project. configurations. testCompile. dependencies. all(disableTransitiveDeps)
393
392
project. configurations. compileOnly. dependencies. all(disableTransitiveDeps)
393
+ project. plugins. withType(ShadowPlugin ). whenPluginAdded {
394
+ project. configurations. shadow. dependencies. all(disableTransitiveDeps)
395
+ }
394
396
}
395
397
396
398
/* * Adds repositories used by ES dependencies */
@@ -883,11 +885,20 @@ class BuildPlugin implements Plugin<Project> {
883
885
project. dependencyLicenses. dependencies = project. configurations. runtime. fileCollection {
884
886
it. group. startsWith(' org.elasticsearch' ) == false
885
887
} - project. configurations. compileOnly
888
+ project. plugins. withType(ShadowPlugin ). whenPluginAdded {
889
+ project. dependencyLicenses. dependencies + = project. configurations. shadow. fileCollection {
890
+ it. group. startsWith(' org.elasticsearch' ) == false
891
+ }
892
+ }
886
893
}
887
894
888
895
private static configureDependenciesInfo (Project project ) {
889
896
Task deps = project. tasks. create(" dependenciesInfo" , DependenciesInfoTask . class)
890
897
deps. runtimeConfiguration = project. configurations. runtime
898
+ project. plugins. withType(ShadowPlugin ). whenPluginAdded {
899
+ deps. runtimeConfiguration = project. configurations. create(' infoDeps' )
900
+ deps. runtimeConfiguration. extendsFrom(project. configurations. runtime, project. configurations. shadow)
901
+ }
891
902
deps. compileOnlyConfiguration = project. configurations. compileOnly
892
903
project. afterEvaluate {
893
904
deps. mappings = project. dependencyLicenses. mappings
0 commit comments