我正在开发一些 sbt 0.13.5 项目,这些项目会提取 100 多个依赖项进行编译。从韩国这里到达像typesafe.com
//这样的服务器需要大约 1scala-sbt.org
秒的maven.org
时间,这使得依赖关系解析需要几个小时才能完成。所以我设法通过以下方式设置 sbt 以使用安装在本地网络上的人工镜像:
● 保存~/.sbt/repositories
如下,
[repositories]
local
ivy-proxy-releases: http://artifactory.local:8088/artifactory/ivy-release, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
maven-proxy-releases: http://artifactory.local:8088/artifactory/libs-release
maven-proxy-shapshots: http://artifactory.local:8088/artifactory/libs-snapshot
● 在顶部添加以下行~/.sbt/0.13/plugins/build.sbt
sbtResolver := Resolver.url("ivy proxy repo", url("http://artifactory.local:8088/artifactory/ivy-release"))(Resolver.ivyStylePatterns)
● 将同一行添加到本地项目目录的./project/plugins.sbt
通过这样做,我可以大大减少提取依赖 jar 所需的时间,但 sbt 仍在访问repo.scala-sbt.org
并且repo.typesafe.com
只是为了获得一些 404(有很大的延迟)。
因此,只有在我/etc/hosts
将这些域指向一个虚拟 Web 服务器之后,我才能实现最短的构建时间。(约 2 分钟提取所有依赖项并编译play-scala
示例)
是否有一个设置可以让 sbt 完全忘记scala-sbt
和typesafe
repos 并且只使用配置的本地代理?