
Proxy 環境下でビルドするために必要なことをまとめます。
内容自体は他の記事にもありますが、最近個人的に色々調べてたこともあり、成果のメモ書きな感じです。
- Proxy 環境下の PC のアプリは別途 Proxy 設定を指定する必要がある
- Android は gradle.properties に Proxy 設定をする
- ライブラリーが外部のライブラリーのダウンロードしようとする場合、そのライブラリーの宣言に Proxy 設定をする必要がある
- terminal、cmd のため環境変数にも Proxy 設定を行う
セキュリティ向上、匿名性などの理由に、社内のネットワークが Proxy 環境に置かれているケースがあります。
PC に Proxy 設定をしていれば、ブラウザアプリは自動的にその設定を読み込んでいるので普通にページに接近できたりしますが、 Android の開発環境は別途 Proxy 設定をする必要があります。
gradle.properties はグローバルな設定、プロジェクト内の設定として 2つがあります。
- グローバル設定
- rootディレクトリにある .gradle フォルダーの中
- プロジェクト内の設定
- プロジェクトフォルダーの中の .gradle フォルダーの中
設定したいスコープに合うフォルダーの中の gradle.properties に Proxy の設定を以下のように書き込めば設定は完了です。(あらかじめ、PC の Proxy 情報は把握しておきましょう)
アカウント認証周りは不要であれば書かなくて OK です。
systemProp.http.proxyHost=hogeproxy.co.jp
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=****
systemProp.http.proxyPassword=****
systemProp.https.proxyHost=hogeproxy.co.jp
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=****
systemProp.https.proxyPassword=****
設定が完了されたら、 Gradle ビルドでライブラリなどがダウンロードされます。
上記の設定をすれば大体は完了ですが、一部のライブラリはプロジェクトビルド時に従属の追加のライブラリをダウンロードします。
このケースは gradle.properties の設定では Proxy が通らずエラーになります。
例として Robolectric はビルド時に android-all-instrumented のライブラリをダウンロードしますが、Proxy 環境下では Maven に接近できず失敗します。
自分がハマったところがこれだったのですが、Robolectric の公式ページを見ると Proxy の設定方法を案内していました。
https://robolectric.org/configuring/#system-properties
このように、ビルド時にどこで失敗しているかを確認し、該当するライブラリ側で設定を提供しているか確認しましょう。
プロジェクト内の Proxy 設定が環境したらビルドはできる状態だと思います。
ただ、この PC を自動化のマシンとして使いとか、コマンドでの通信を行う場合は環境変数に Proxy 設定をする必要があるので設定しおくといいです。
最近自分がハマったところをメモ書きとして残しました。
もし内容に指摘がありましたらコメントお願いします。
Views: 0