Spring Boot を認証付きプロキシの環境で使用する時 mvnwコマンドが失敗する問題について。
Spring Bootでプロジェクトを作ると ディレクトリ直下にmvnwコマンドが配置されています。
mvnwコマンド は mvnコマンドをラッピングしています。
mvnwコマンドは最初にmavenのバイナリファイルをダウロードします。
Downloading https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip
Exception in thread "main" java.net.UnknownHostException: repo1.maven.org
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
しかしJDK1.8u111以上で認証付きプロキシ環境だとダウンロードできずに失敗します。
理由はプロキシの設定をしていない
かつ JDK1.8u111以上だと 認証プロキシがデフォルトで無効化されてた為。
http://www.oracle.com/technetwork/java/javase/8u111-relnotes-3124969.html
jdk.http.auth.tunneling.disabledSchemesを指定する必要があります。
mvnwコマンドが参照するjvm.configファイルに下記のような内容を記載します。
プロジェクトHOME/.mvn/jvm.configの内容
-Dhttp.proxyHost=proxy.hoge.co.jp
-Dhttp.proxyPort=8080
-Dhttp.proxyUser=uer001
-Dhttp.proxyPassword=hogepass
-Dhttps.proxyHost=proxy.hoge.co.jp
-Dhttps.proxyPort=8080
-Dhttps.proxyUser=uer001
-Dhttps.proxyPassword=hogepass
-Djdk.http.auth.tunneling.disabledSchemes=