From ee588faed5e54789df66244f6b368d4630e7f802 Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Thu, 27 Apr 2017 21:40:41 +0300 Subject: [PATCH] Build scripts: simplify download jbre tasks, introduce jbre group --- build/dependencies/setupJbre.gradle | 47 +++++++++++++++-------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/build/dependencies/setupJbre.gradle b/build/dependencies/setupJbre.gradle index e9501e9b04e5..94b97e2168ea 100644 --- a/build/dependencies/setupJbre.gradle +++ b/build/dependencies/setupJbre.gradle @@ -1,31 +1,34 @@ -task setupJbre {} +buildscript { + repositories { + maven { url "http://repo.labs.intellij.net/plugins-gradle-org/" } + maven { url "https://plugins.gradle.org/m2/" } + } + dependencies { + classpath "de.undercouch:gradle-download-task:3.2.0" + } +} +apply plugin: "de.undercouch.download" -def jdkRepo = inJetBrainsNetwork ? 'http://repo.labs.intellij.net/intellij-jdk' : 'https://dl.bintray.com/jetbrains/intellij-jdk' +import de.undercouch.gradle.tasks.download.Download +import org.jetbrains.intellij.build.DependenciesBuildUtils + +task setupJbre {} jrePlatformsToDownload(targetOs).each { platform -> archToDownload(platform).each { arch -> def jbrexArtifactName = "jbrex8${jdkBuild}_${platform}_$arch" def jbreArtifactName = "jbre8${jdkBuild}_${platform}_$arch" - task("downloadJbrex_${platform}_$arch") { - def outputDir = "$project.buildDir/jbre" - def outputFile = "$outputDir/${jbrexArtifactName}_origin.tar.gz" - + task("downloadJbrex_${platform}_$arch", type: Download, group: 'jbre') { inputs.property('build', jdkBuild) - outputs.file(outputFile) - doLast { - logger.info("Downloading $jbrexArtifactName to $outputFile") - download { - src "$jdkRepo/${jbrexArtifactName}.tar.gz" - dest outputFile - onlyIfNewer true - } - } + src "$DependenciesBuildUtils.jdkRepo/${jbrexArtifactName}.tar.gz" + dest "$buildDir/jbre/${jbrexArtifactName}_origin.tar.gz" + onlyIfNewer true } cleanSetupJbre.dependsOn("cleanDownloadJbrex_${platform}_$arch") if (org.gradle.internal.os.OperatingSystem.current().isWindows()) { - task("untarJbrex_${platform}_$arch", type: Copy, dependsOn: "downloadJbrex_${platform}_$arch") { + task("untarJbrex_${platform}_$arch", type: Copy, dependsOn: "downloadJbrex_${platform}_$arch", group: 'jbre') { def downloadOutputs = tasks["downloadJbrex_${platform}_$arch"].outputs.files from tarTree(downloadOutputs.singleFile), { exclude 'lib/tools.jar' @@ -39,7 +42,7 @@ jrePlatformsToDownload(targetOs).each { platform -> } } else { - task("untarJbrex_${platform}_$arch", type: Exec, dependsOn: "downloadJbrex_${platform}_$arch") { + task("untarJbrex_${platform}_$arch", type: Exec, dependsOn: "downloadJbrex_${platform}_$arch", group: 'jbre') { def downloadOutputs = tasks["downloadJbrex_${platform}_$arch"].outputs.files def outputDir = "${downloadOutputs.singleFile.absolutePath - '.tar.gz'}" inputs.file(downloadOutputs.singleFile) @@ -47,11 +50,11 @@ jrePlatformsToDownload(targetOs).each { platform -> doFirst { exec { commandLine 'mkdir', '-p', outputDir } } commandLine 'tar', '-xpf', "${downloadOutputs.singleFile.absolutePath}", '--directory', outputDir if (platform != 'osx') { - doLast { - exec { + doLast { + exec { commandLine 'mv', "$outputDir/lib/tools.jar", "$outputDir/jre/lib/" ignoreExitValue = true - } + } } } } @@ -70,7 +73,7 @@ def createTarJbreTask(String taskName, String untarTaskName, String platform, St def dirToTar = platform == 'osx' ? 'jdk' : 'jre' if (org.gradle.internal.os.OperatingSystem.current().isWindows()) { - task(taskName, type: Tar) { + task(taskName, type: Tar, group: 'jbre') { def untarOutputs = tasks[untarTaskName].outputs.files inputs.file(untarOutputs) from "$untarOutputs.singleFile/$dirToTar" @@ -84,7 +87,7 @@ def createTarJbreTask(String taskName, String untarTaskName, String platform, St } } else { - task(taskName, type: Exec) { + task(taskName, type: Exec, group: 'jbre') { def untarOutputs = tasks[untarTaskName].outputs.files def outputFile = "${untarOutputs.singleFile.parentFile}/${archiveName}.tar.gz" inputs.files(untarOutputs)