As I had another stab on this old issue, here is a shell script that somewhat helps with the problem:
#!/usr/bin/env bash
export PROJECT_ROOT=${1:-`pwd`}
export LOCAL_NAME=${2:-gw}
export LOCAL_DISTRIBUTION_URL_PATTERN=${3:-${LOCAL_DISTRIBUTION_URL_PATTERN:-'your-host.com\/artifactory\/pkg\/gradle'}}
export ORIGINAL_DISTRIBUTION_URL_PATTERN=${4:-${ORIGINAL_DISTRIBUTION_URL_PATTERN:-'services.gradle.org\/distributions'}}
echo Creating $LOCAL_NAME under root $PROJECT_ROOT, converting wrapper distributionURLs
echo "Original: $ORIGINAL_DISTRIBUTION_URL_PATTERN"
echo "Local : $LOCAL_DISTRIBUTION_URL_PATTERN"
cd $PROJECT_ROOT
cat gradlew | sed "s/gradle-wrapper.jar/gradle-wrapper-$LOCAL_NAME.jar/" > $LOCAL_NAME
cat gradlew.bat | sed "s/gradle-wrapper.jar/gradle-wrapper-$LOCAL_NAME.jar/" > $LOCAL_NAME.bat
cat gradle/wrapper/gradle-wrapper.properties | sed "s/$ORIGINAL_DISTRIBUTION_URL_PATTERN/$LOCAL_DISTRIBUTION_URL_PATTERN/" > gradle/wrapper/gradle-wrapper-$LOCAL_NAME.properties
cp gradle/wrapper/gradle-wrapper.jar gradle/wrapper/gradle-wrapper-$LOCAL_NAME.jar
chmod u+x $LOCAL_NAME
Before you use it set your LOCAL_DISTRIBUTION_URL_PATTERN
envvar to a sed-escaped url of your internal distribution mirror. Once you do that, you can checkout a project, go to its root directory and run this script from wherever you put it. It would create new wrapper files that you can use, with config pointing to your distribution Url.
Example:
git clone git@scm-host:foo/bar
cd bar
~/scripts/localize-wrapper.sh
gw build
Tested on Cygwin and Linux