2015年1月13日火曜日

Proxy環境でGradleを使ってAndoridのビルドをした時にはまった時の解決方法メモ(peer not authenticated,MultipleArtifactsNotFoundExceptio)

このエントリーをはてなブックマークに追加 はてなブックマーク - Proxy環境でGradleを使ってAndoridのビルドをした時にはまった時の解決方法メモ(peer not authenticated,MultipleArtifactsNotFoundExceptio)

Proxy環境でGradleを使ってAndoridのビルドをした時にはまったのでメモ。

ビルド対象

robolectric/deckard-gradle

上記テンプレートを使って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 件のコメント:

コメントを投稿