社内ネットワークで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.properties
のdistributionUrl
に記述されています。
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/
です。