Build scripts: simplify download jbre tasks, introduce jbre group

This commit is contained in:
Alexander Zolotov
2017-04-29 01:57:45 +03:00
parent ea6df90993
commit ee588faed5
+25 -22
View File
@@ -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)