There seems to be something going on with Australia (and other countries too I assume).
Which version of sbt are you using?
Some of the potential parameters:
- the network distance between your ISP and the repositories where the artifacts are hosted
- CDN used by these repositories, and latency and throughput
- HTTP vs HTTPS, and their initial handshakes
For instance, HTTPS was enabled in 0.13.6 by default[1].
Here are a few things you could try out to help us diagnose the situation:
1. Put sbt-dirty-money[2] in ~/.sbt/0.13/plugins/dirtymoney.sbt, which introduces
cleanCache (cleans current project's JAR from Ivy cache), and
cleanCache "com.github.scopt" %% "scopt" (cleans specified library's JAR from Ivy cache)
This allows you to experiment with various settings.
2. Use JCenter as the default Maven repository:
fullResolvers := (Resolver.jcenterRepo +: fullResolvers.value)
Maybe Australia is far from Maven Central, but JCenter, backed by Amazon's CDN at least in United States,
gives you better result.
3. Turn off HTTPS. Running sbt with:
-Dsbt.repository.secure=false
should turn off HTTPS for resolving artifacts. That could reduce the latency.
4. Test your latency. James Roper opened [#590][590] discussing this topic,
and in there I posted:
If you could post your result for the above, it might be helpful. While you're at it could you also post for Maven Central as well?:
5. Once you find the right combination, you could try installing a local proxy such as Artifactory,
and resolve artifacts from that for all projects. See [3]
Another idea James had is pooling the connection.
AFAIK no attempt is made currently to pool the connections, so the initial handshake is repeated for each files.
I'm not sure if pooling would help given that many of the repositories would need to redirect actual downloading to CDNs,
but that might be something worth trying.
-eugene