Proxy環境でGradleを使ってAndoridのビルドをした時にはまったのでメモ。
ビルド対象
上記テンプレートを使ってProxy環境のサーバーでテストを含むビルドができるようにしました。(2015年1月現在)環境はLinuxOSでした。
とりあえず
これは結構どこにでも書いてあったGradledでのProxy設定する方法。~/.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=****
これをやったのに2つのポイントでNGになった。
はまりポイント1(peer not authenticated)
実行すると以下のようなエラーが出ました。
peer not authenticated
調べると以下のようなサイトが。
Gradle Could not HEAD https://..pom > peer not authenticated
こちらを見ると書いてあるようにMaven2repositoryがHTTPSをサポートしなくなったのに
repositories {
mavenCentral()
}
と書くとHTTPSでアクセスするようでエラーになるみたいです。 なので、build.gradleの依存解決のリポジトリを全てjcenterに変えました。
repositories {
jcenter()
}
これで上記エラーは出なくなりました。
はまりポイント2(MultipleArtifactsNotFoundException: Missing)
やったーうまくいったと思ったら今度はMultipleArtifactsNotFoundExceptionが出て、testDebugでエラーに。
色々調べたら解決方法が書いてありました。
Unable to resolve artifact: Missing, using Eclipse and Robolectric
Mavenのプラグインでmavenの設定ファイルを探してそれを利用しているらしく、これにProxy設定を書かないとダメのようです。mavneの設定ファイルは~/.m2/settings.xmlとして記載します。
<settings>
.
.
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>proxy.somewhere.com</host>
<port>8080</port>
<username>proxyuser</username>
<password>somepassword</password>
<nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
</proxy>
</proxies>
.
.
</settings>
設定したらうまくできました。。。。。
0 件のコメント:
コメントを投稿