Search code examples
gradlegradlew

How to use gradle zip in local system without downloading when using gradle-wrapper


I'm trying to build a gradle project with gradle-wrapper (gradlew).

When I build with ./gradlew build, it outputs text

Downloading http://services.gradle.org/distributions/gradle-1.11-bin.zip

And I already got gradle-1.11-bin.zip downloaded separately and I don't want to be downloading it again when I build.

So, where shall I put gradle-1.11-bin.zip in my project or system so that I don't have to download again?

gradle/wrapper/gradle-wrapper.properties is as following.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-bin.zip

And I've tried copying gradle-1.11-bin.zip into gradle/wrapper/dists which didn't solve the problem.


Solution

  • From gradle-wrapper documentation, I found in section 61.1. Configuration

    If you don't want any download to happen when your project is build via gradlew, simply add the Gradle distribution zip to your version control at the location specified by your wrapper configuration. A relative URL is supported - you can specify a distribution file relative to the location of gradle-wrapper.properties file.

    So, I changed distributionUrl property in gradle/wrapper/gradle-wrapper.properties to

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=gradle-1.11-bin.zip
    

    Then, I made a copy of gradle-1.11-bin.zip in gradle/wrapper/.

    Then, ./gradlew build downloaded local copy of zip and built the project.


    Here's a real-world example:

    mkdir -p $HOME/dev
    cd $HOME/dev
    git clone https://github.com/oss-review-toolkit/ort
    cd ort/gradle/wrapper
    wget https://services.gradle.org/distributions/gradle-7.5.1-bin.zip
    sed -i 's/distributionUrl=.*/distributionUrl=gradle-7.5.1-bin.zip/' gradle-wrapper.properties 
    cd ../..
    ./gradlew installDist