gradle

Gradleでのプロキシ設定

More than 3 years have passed since last update.

社内ネットワークでAndroidアプリをGradleビルドする際にプロキシ設定が必要だったのでそのメモ。


gradlewファイルへの設定

Gradle実行時にUnknownHostExceptionが発生して失敗してしまったので設定しました。

gradlew または gradlew.bat の先頭に以下を追記します。

set JAVA_OPTS=-DproxyHost=myproxy.co.jp -DproxyPort=8080 -Dhttp.proxyUser=**** -Dhttp.proxyPassword=**** -Dhttps.proxyUser=**** -Dhttps.proxyPassword=****

gradlew実行時に、GradleのZIP(gradle-1.xx-all.zip)がない場合は取得に行くので必要となります。

ZIPファイルをダウンロードした後は設定を削除してもOKです。


gradle.propertiesへの設定

gradlewファイルに設定後も以下のようにプロキシのエラーが発生したので設定しました。


Failed to get resource: GET. [HTTP HTTP/1.0 407 Proxy Authentication Required: http://repo1.maven.org/maven2/com/android/tools/build/gradle/maven-metadata.xml]

Error listing versions of com.android.tools.build:gradle using class org.gradle.

api.internal.artifacts.repositories.resolver.MavenVersionLister$1. Will attempt an alternate way to list versions. This behaviour has been deprecated and is scheduled to be removed in Gradle 2.0

Failed to get resource: GET. [HTTP HTTP/1.0 407 Proxy Authentication Required: http://repo1.maven.org/maven2/com/android/tools/build/gradle/]


[ユーザーディレクトリ]/.gradle/gradle.properties(なければ作成する)に以下のように設定します。

systemProp.http.proxyHost=myproxy.co.jp

systemProp.http.proxyPort=8080
systemProp.http.proxyUser=****
systemProp.http.proxyPassword=****
systemProp.https.proxyHost=myproxy.co.jp
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=****
systemProp.https.proxyPassword=****

実行時にいろいろアクセスするようです。


おまけ:ZIPファイルが壊れている場合

gradlewファイルにプロキシ設定をして実行してもダウンロードされたZIPファイルが壊れていてうまく開けないことがありました。


Exception in thread "main" java.lang.RuntimeException: java.util.zip.ZipException: error in opening zip file

at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:78)

at org.gradle.wrapper.Install.createDist(Install.java:47)

at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)

at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)

Caused by: java.util.zip.ZipException: error in opening zip file

at java.util.zip.ZipFile.open(Native Method)

at java.util.zip.ZipFile.(ZipFile.java:214)

at java.util.zip.ZipFile.(ZipFile.java:144)

at java.util.zip.ZipFile.(ZipFile.java:158)

at org.gradle.wrapper.Install.unzip(Install.java:160)

at org.gradle.wrapper.Install.access$400(Install.java:29)

at org.gradle.wrapper.Install$1.call(Install.java:70)

at org.gradle.wrapper.Install$1.call(Install.java:47)

at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)

... 3 more


このとき、ZIPファイルを手動でダウンロードして配置したら解決しました。

ダウンロードURLは、gradle/wrapper/gradle-wrapper.propertiesdistributionUrlに記述されています。

distributionBase=GRADLE_USER_HOME

distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.xx-all.zip

ファイルの配置先は[ユーザーディレクトリ]/.gradle/wrapper/dists/です。