diff --git a/build.gradle b/build.gradle index 66f34d8f445de..fa4e1c6b0819c 100644 --- a/build.gradle +++ b/build.gradle @@ -16,21 +16,17 @@ * specific language governing permissions and limitations * under the License. */ - import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin -import org.apache.tools.ant.taskdefs.condition.Os -import org.apache.tools.ant.filters.ReplaceTokens import org.elasticsearch.gradle.BuildPlugin import org.elasticsearch.gradle.LoggedExec import org.elasticsearch.gradle.Version import org.elasticsearch.gradle.VersionCollection import org.elasticsearch.gradle.VersionProperties import org.gradle.plugins.ide.eclipse.model.SourceFolder - -import org.gradle.api.tasks.wrapper.Wrapper -import org.gradle.api.tasks.wrapper.Wrapper.DistributionType import org.gradle.util.GradleVersion import org.gradle.util.DistributionLocator +import org.apache.tools.ant.taskdefs.condition.Os +import org.apache.tools.ant.filters.ReplaceTokens import java.nio.file.Files import java.nio.file.Path @@ -537,7 +533,7 @@ task run(type: Run) { } wrapper { - distributionType = DistributionType.ALL + distributionType = 'ALL' doLast { final DistributionLocator locator = new DistributionLocator() final GradleVersion version = GradleVersion.version(wrapper.gradleVersion) @@ -546,6 +542,10 @@ wrapper { final String sha256Sum = new String(sha256Uri.toURL().bytes) wrapper.getPropertiesFile() << "distributionSha256Sum=${sha256Sum}\n" println "Added checksum to wrapper properties" + // Update build-tools to reflect the Gradle upgrade + // TODO: we can remove this once we have tests to make sure older versions work. + project(':build-tools').file('src/main/resources/minimumGradleVersion').text = gradleVersion + println "Updated minimum Gradle Version" } } diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 55520728812c9..d507c54c45a70 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -25,8 +25,9 @@ plugins { group = 'org.elasticsearch.gradle' -if (GradleVersion.current() < GradleVersion.version('4.9')) { - throw new GradleException('Gradle 4.9+ is required to build elasticsearch') +String minimumGradleVersion = file('src/main/resources/minimumGradleVersion').text.trim() +if (GradleVersion.current() < GradleVersion.version(minimumGradleVersion)) { + throw new GradleException("Gradle ${minimumGradleVersion}+ is required to build elasticsearch") } if (JavaVersion.current() < JavaVersion.VERSION_1_8) { diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index 9f54ae8b682e6..58e2420e02b07 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -20,6 +20,7 @@ package org.elasticsearch.gradle import com.carrotsearch.gradle.junit4.RandomizedTestingTask import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin +import org.apache.commons.io.IOUtils import org.apache.tools.ant.taskdefs.condition.Os import org.eclipse.jgit.lib.Constants import org.eclipse.jgit.lib.RepositoryBuilder @@ -53,6 +54,7 @@ import org.gradle.internal.jvm.Jvm import org.gradle.process.ExecResult import org.gradle.util.GradleVersion +import java.nio.charset.StandardCharsets import java.time.ZoneOffset import java.time.ZonedDateTime /** @@ -67,8 +69,13 @@ class BuildPlugin implements Plugin { + 'elasticearch.standalone-rest-test, and elasticsearch.build ' + 'are mutually exclusive') } - if (GradleVersion.current() < GradleVersion.version('4.9')) { - throw new GradleException('Gradle 4.9+ is required to use elasticsearch.build plugin') + final String minimumGradleVersion + InputStream is = getClass().getResourceAsStream("/minimumGradleVersion") + try { minimumGradleVersion = IOUtils.toString(is, StandardCharsets.UTF_8.toString()) } finally { is.close() } + if (GradleVersion.current() < GradleVersion.version(minimumGradleVersion.trim())) { + throw new GradleException( + "Gradle ${minimumGradleVersion}+ is required to use elasticsearch.build plugin" + ) } project.pluginManager.apply('java') project.pluginManager.apply('carrotsearch.randomized-testing') @@ -150,14 +157,6 @@ class BuildPlugin implements Plugin { } println " Random Testing Seed : ${project.testSeed}" - // enforce Gradle version - final GradleVersion currentGradleVersion = GradleVersion.current(); - - final GradleVersion minGradle = GradleVersion.version('4.3') - if (currentGradleVersion < minGradle) { - throw new GradleException("${minGradle} or above is required to build Elasticsearch") - } - // enforce Java version if (compilerJavaVersionEnum < minimumCompilerVersion) { final String message = diff --git a/buildSrc/src/main/resources/minimumGradleVersion b/buildSrc/src/main/resources/minimumGradleVersion new file mode 100644 index 0000000000000..899dd4f5927a1 --- /dev/null +++ b/buildSrc/src/main/resources/minimumGradleVersion @@ -0,0 +1 @@ +4.9 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 758de960ec794..0d4a9516871af 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ