8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gradleを認証付きプロキシ下でコマンドラインから使う

Last updated at Posted at 2018-04-15

前座

開発なのに低スペPCしかなく、AndroidStudioでコーディングなんてできないぜって人や、人から貰ったソースコードを簡単にビルドしたいなんてときにgradlewコマンドでターミナル上からビルドすることはよくあるとおもう。

$ ./gradlew assembleDebug

問題

ところが、最近になって突然、以下のエラーが出るようになった。

Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"

認証付きプロキシを使って外部と接続してると、その認証がうまくいっていない。エラーの内容からすると、プロキシを通そうとしているんだけど、認証は通らないようだ。奇妙なことに、AndroidStudioではうまくビルドできている1

解決

Java8のどこからかのバージョンからBasic認証が禁止されていたみたい2。そしてこれを無効化し、Basic認証を使えるようにするにはコマンドライン引数を渡してやればいいみたい。

gradlew(Windowsの場合gradlew.bat)を開き、以下を追加する。

DEFAULT_JVM_OPTS="-Djdk.http.auth.tunneling.disabledSchemes=\"\""

これで通った!!

参考情報

  1. もちろんこれは設定している。Android Studio の設定 | Android Studio

  2. JavaでHTTPSのサイトに認証付きプロキシ経由でアクセスしようとすると407エラー |
    Qiita

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?