Both gradle and gradlew are silently refusing to use ~/.gradle to cache downloaded files.
When gradlew runs from Jenkins, it downloads the gradle zip to the workspace directory rather than ~jenkins. Then once gradle proper starts running, it caches all downloaded jars in workspace/.gradle but not in ~/.gradle. This is a problem because Jenkins is configured to wipe the workspace directory clean before each build.
When I run gradlew from my own machine, everything behaves as I expect – files are cached in my home directory. Here’s a short excerpt from the Jenkins log:
10:20:56 HOME=/home/jenkins 10:20:56 JAVA_HOME=/jenkins/tools/hudson.model.JDK/1.7_07 10:20:56 LOGNAME=jenkins 10:20:56 PWD=/jenkins/workspaces/Gradle-Continuous 10:20:56 USER=jenkins [...] 10:20:56 [Gradle-Continuous] $ /jenkins/workspaces/Gradle-Continuous/gradlew -Djenkins.user.for.email=******** -Djenkins.password.for.email=******** -d autobuild 10:20:56 Downloading http://services.gradle.org/distributions/gradle-1.6-bin.zip 10:21:03 ...[...] 10:21:03 Unzipping /jenkins/workspaces/Gradle-Continuous/wrapper/dists/gradle-1.6-bin/72srdo3a5eb3bic159kar72vok/gradle-1.6-bin.zip to /jenkins/workspaces/Gradle-Continuous/wrapper/dists/gradle-1.6-bin/72srdo3a5eb3bic159kar72vok
There’s nothing funny in gradle-wrapper.properties:
#Tue Jul 02 16:32:52 UTC 2013 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=http\://services.gradle.org/distributions/gradle-1.6-bin.zip
And ~jenkins is writable by Jenkins:
$ ls -ld ~jenkins drwxr-xr-x 11 jenkins jenkins 4096 Jul 2 11:13 /home/jenkins
I dug into the gradlew source, and it looks like it should be using user.home as I expect. I tried adding
println("user.home = " + System.properties['user.home'])
to my top-level build.gradle, and it printed /home/jenkins as expected.