Gradle 2.5 RC 1 broke .tar.gz

The exact same code using 2.4 works.

ext.javaInstallDir = "${project.projectDir}/RCL_JVM"
ext.antInstallDir = "${project.projectDir}/RCL_ANT"
ext.tomcatInstallDir = "${project.projectDir}/RCL_TOMCAT"
ext.tomcatStagingDir = "${buildDir}/staging/tomcat"
ext.tomcatStagingExplodedDir = "${tomcatStagingDir}/apache-tomcat-${tomcatVersion}"

repositories {
    mavenLocal()
    maven {
        url 'http://appsuppt103/artifactory/libs-release-elvas'
    }
    maven {
        url 'http://appsuppt103/artifactory/jcenter'
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
    distributionUrl = 'http://appsuppt103/artifactory/simple/gradle-distributions/gradle-2.4-bin.zip'
}

configurations {
    javaInstall
    antInstall
    tomcatInstall
    cargo
}

dependencies {
    javaInstall "java:jvm:${javaVersion}:${org.gradle.internal.os.OperatingSystem.current().getFamilyName()}@gz"
    antInstall "java:ant:${antVersion}@gz"
    tomcatInstall "java:tomcat:${tomcatVersion}@gz"
    cargo "org.codehaus.cargo:cargo-core-uberjar:${cargoVersion}", 
          "org.codehaus.cargo:cargo-ant:${cargoVersion}"
}

task check  {
    println "project.projectDir: ${project.projectDir}"
    println "buildDir: ${buildDir}"
}

task removeJava(type: Delete) {
    delete javaInstallDir

    doFirst {
        println "Deleting ${javaInstallDir}"
    }
}

task installJava(type: Copy, dependsOn: 'removeJava') {
    def javaInstallFile = configurations.javaInstall.files[0]

    from tarTree(resources.gzip(javaInstallFile))
    into javaInstallDir
    
    doFirst {
        println "Installing ${javaInstallFile.name} into ${javaInstallDir}"
    }

    //chmod the bin directory
    //Using ant because gradle on java 1.6 can't change file permissions
    doLast {
        ant.chmod(dir: "${javaInstallDir}/bin", perm: "755", includes: "*, */*")
        ant.chmod(dir: "${javaInstallDir}/jre/bin", perm: "755", includes: "*, */*")
    }
}

task removeAnt(type: Delete) {
    delete antInstallDir

    doFirst {
        println "Deleting ${antInstallDir}"
    }
}

task installAnt(type: Copy, dependsOn: 'removeAnt') {
    def antInstallFile = configurations.antInstall.files[0]

    from tarTree(resources.gzip(antInstallFile))
    into antInstallDir

    doFirst {
        println "Installing ${antInstallFile.name} into ${antInstallDir}"
    }

    //chmod the bin directory
    //Using ant because gradle on java 1.6 can't change file permissions
    doLast {
        ant.chmod(dir: "${antInstallDir}/bin", perm: "755", includes: "*, */*")
    }
}

task removeTomcat(type: Delete) {
    delete tomcatStagingDir
    delete tomcatInstallDir

     doFirst {
        println "Deleting ${tomcatStagingDir}"
        println "Deleting ${tomcatInstallDir}"
    }
}

task unzipTomcat(dependsOn: 'removeTomcat', type: Copy) {
    def tomcatInstallFile = configurations.tomcatInstall.files[0]
    from tarTree(resources.gzip(tomcatInstallFile))
    into tomcatStagingDir

    doFirst {
        println "Unzipping ${tomcatInstallFile} into ${tomcatStagingDir}"
    }
}

task finalizeTomcatInstall(type: Delete) {
    delete tomcatStagingDir

    doFirst {
        println "Cleaning up staging area"
    }
}

task installTomcat(dependsOn: 'unzipTomcat') {
    doFirst {
        println "Installing tomcat-${tomcatVersion} into ${tomcatInstallDir}"
    }

    doLast {
        println "Configuring tomcat...."
        ant.taskdef(resource:"cargo.tasks", classpath: configurations.cargo.asPath)
        ant.cargo(
        containerId: cargoTomcatContainerId, 
        home: tomcatStagingExplodedDir,
        log: "${buildDir}/cargo.log", 
        output: "${buildDir}/output.log", 
        action: "configure")
            {
                ant.configuration(home: "${tomcatStagingDir}/conf") 
                    {
                        property(name:"cargo.servlet.port", value: "12345")
                    }
            }
    }

    doLast {
        println "Moving configured tomcat from ${tomcatStagingExplodedDir} to ${tomcatInstallDir}"
        file(tomcatStagingExplodedDir).renameTo(file(tomcatInstallDir))
        file("${tomcatInstallDir}/conf").renameTo(file("${tomcatInstallDir}/origConf"))
        file("${tomcatStagingDir}/conf/conf").renameTo(file("${tomcatInstallDir}/conf"))
    }

    doLast {
        println "Adding +x permission to all files in ${tomcatInstallDir}/bin"

        //Using ant because gradle on java 1.6 can't change file permissions
        ant.chmod(dir: "${tomcatInstallDir}/bin", perm: "755", includes: "*, */*")
    }
}
installTomcat.finalizedBy finalizeTomcatInstall



task installAll(dependsOn: ['installJava', 'installAnt', 'installTomcat']) << {
    println("Installing complete platform...")
}

Here is the exception generated.

Gradle Tasks: :installTomcat
Working Directory: A:\development\git\Gekko_Eclipse\gekko_platform
Gradle Distribution: Remote distribution from http://appsuppt103/artifactory/simple/gradle-distributions/gradle-2.5-rc-1-bin.zip
Gradle User Home: Use default defined by Gradle
Java Home: Use default defined by Gradle
JVM Arguments: Use default defined by Gradle
Program Arguments: --S

project.projectDir: A:\development\git\Gekko_Eclipse\gekko_platform
buildDir: A:\development\git\Gekko_Eclipse\gekko_platform\build
:removeTomcat
Deleting A:\development\git\Gekko_Eclipse\gekko_platform\build/staging/tomcat
Deleting A:\development\git\Gekko_Eclipse\gekko_platform/RCL_TOMCAT
:unzipTomcat
FAILURE: Build failed with an exception.

  • What went wrong:
    Cannot expand TAR ‘C:\Users\judsona.gradle\caches\modules-2\files-2.1\java\tomcat\8.0.9\7218d06eab70e576de68a4d4d72ec4da34304676\tomcat-8.0.9.gz’.

Unable to create gzip input stream for resource C:\Users\judsona.gradle\caches\modules-2\files-2.1\java\tomcat\8.0.9\7218d06eab70e576de68a4d4d72ec4da34304676\tomcat-8.0.9.gz.

  • Try:
    Run with --info or --debug option to get more log output.

  • Exception is:
    org.gradle.api.InvalidUserDataException: Cannot expand TAR ‘C:\Users\judsona.gradle\caches\modules-2\files-2.1\java\tomcat\8.0.9\7218d06eab70e576de68a4d4d72ec4da34304676\tomcat-8.0.9.gz’.
    at org.gradle.api.internal.file.archive.TarFileTree.visit(TarFileTree.java:69)
    at org.gradle.api.internal.file.collections.FileTreeAdapter.visit(FileTreeAdapter.java:108)
    at org.gradle.api.internal.file.AbstractFileTree$FilteredFileTree.visit(AbstractFileTree.java:137)
    at org.gradle.api.internal.file.AbstractFileTree.isEmpty(AbstractFileTree.java:49)
    at org.gradle.api.internal.file.CompositeFileCollection.isEmpty(CompositeFileCollection.java:57)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:208)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:186)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:62)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:111)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55)
    at org.gradle.initialization.DefaultGradleLauncher$6.run(DefaultGradleLauncher.java:174)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:47)
    at org.gradle.initialization.DefaultGradleLauncher.runBuildOperation(DefaultGradleLauncher.java:189)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:171)
    at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:35)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:104)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:97)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
    at org.gradle.initialization.DefaultGradleLauncher.runRootBuildOperation(DefaultGradleLauncher.java:184)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:97)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:93)
    at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:50)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:27)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:69)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:43)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:49)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:71)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
    Caused by: org.gradle.api.resources.ResourceException: Unable to create gzip input stream for resource C:\Users\judsona.gradle\caches\modules-2\files-2.1\java\tomcat\8.0.9\7218d06eab70e576de68a4d4d72ec4da34304676\tomcat-8.0.9.gz.
    at org.gradle.api.internal.file.archive.compression.GzipArchiver.read(GzipArchiver.java:64)
    at org.gradle.api.internal.file.MaybeCompressedFileResource.read(MaybeCompressedFileResource.java:46)
    at org.gradle.api.internal.file.archive.TarFileTree.visit(TarFileTree.java:67)
    … 72 more
    Caused by: java.util.zip.ZipException: Not in GZIP format
    at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)
    at java.util.zip.GZIPInputStream.(GZIPInputStream.java:78)
    at java.util.zip.GZIPInputStream.(GZIPInputStream.java:90)
    at org.gradle.api.internal.file.archive.compression.GzipArchiver.read(GzipArchiver.java:61)
    … 74 more

BUILD FAILED

Total time: 0.739 secs

Thanks @judsona! I’ve raised GRADLE-3310 so we can investigate.