sbt の通信、遅いですよね。 オーストラリアからは特に遅いらしく help the Australian problem と呼ばれてるみたいです。 https://twitter.com/eed3si9n_ja/status/652546775316885504
通信を覗きたいのですが、https での通信は tcpdump しただけでは読めません。 というわけで、間に proxy を入れて man in the middle やります。
これを:
sbt <---------------> server
https
こうする:
sbt <---> proxy <---> server
https https
私は Mac を使っていたので Charles というソフトウェア($50/license)で試しました。30日試用できます。
https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ の JAVA APPLICATIONS のところを参照して keytool コマンドを使って cacerts ファイルに Charles の証明書を追加します。 元のものを直接編集するのは気持ち悪いので JRE の下からコピーして作業するのをお勧めします。
sbt 起動するときに次のオプションを指定します。
- 作った cacerts ファイルを使う
-Djavax.net.ssl.trustStore=/path/to/cacerts
- Proxy の場所を指定する
-DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888
それで通信すると
sbt の通信が遅い原因はわかりましたね。