sbt - 让 sbt 完全忘记 repo.scala-sbt.org 和 repo.typesafe.com

标签 sbt artifactory resolver

我正在开发一些 sbt 0.13.5 项目,这些项目需要编译 100 多个依赖项。从韩国这里到达 typesafe.com/scala-sbt.org/maven.org 等服务器需要约 1 秒的时间,这使得依赖性解析需要几个小时才能完成。所以我设法设置 sbt 使用 artifactory镜像安装在本地网络上,通过:

● 保存~/.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.orgrepo.typesafe.com只是为了得到一些 404(有很大的延迟)。

因此,只有在我使用 /etc/hosts 技巧将这些域指向虚拟 Web 服务器后,我才能实现最短的构建时间。 (大约 2 分钟即可提取所有依赖项并编译 play-scala 示例)

是否有一个设置可以使 sbt 完全忘记 scala-sbttypesafe 存储库并仅使用配置的本地代理?

最佳答案

您可以使用设置 sbt.override.build.repos 覆盖构建存储库,如下所示:sbt doc 。 还有一个answer类似的问题。

关于sbt - 让 sbt 完全忘记 repo.scala-sbt.org 和 repo.typesafe.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24880808/

相关文章:

jenkins - 使用Gradle的Artifactory Jenkins集成

java - Jasper Reports 5.0.1 中的文件解析器

每个 View 的 Angular 2 解析器

python dns.resolver 获取DNS记录类型

scala - 运行 sbt 的项目根目录中的 java.lang.NullPointerException

playframework - Play 中的 TypeScript 模块解析是如何工作的?

jenkins - Gradle + Jenkins + Artifactory Pro:发布阶段和升级

scala - IntelliJ Idea 14 : cannot resolve symbol spark

scala - 忽略自定义任务和范围中的 SBT 工件?

maven - 如何检查gradle从哪里下载其依赖项?