我们希望使用公司内部的ivy/maven存储库(artifactory)来提高解析和下载jar文件的速度,并且我们希望使用它在我们组织中的不同团队之间交换二进制jar文件。
我知道我们可以通过设置强制 SBT 通过代理~/.repositories
with
[repositories]
local
my-ivy-proxy-releases: http://repo.alpinenow.com/artifactory/repo/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
my-maven-proxy-releases: http://repo.alpinenow.com/artifactory/repo/
然后启动 SBT-Dsbt.override.build.repos=true
。这个方法对我有用。
然而,要求所有开发人员都这样设置有点麻烦。我们想知道是否可以在 Build.scala 和 plugin.sbt 中完全覆盖默认解析器而无需额外配置。
到目前为止,我已经尝试了以下方法,但没有成功。
1)在Build.scala和plugin.sbt中,我添加了
resolvers := "Local Repo" at "http://repo.alpinenow.com/artifactory/repo/",
externalResolvers := Seq(Resolver.url("Local Repo", url("http://repo.alpinenow.com/artifactory/repo"))(Resolver.ivyStylePatterns)),
但它仍然从 typesafe 和 maven1 下载 jar。
2)然后我决定将存储库文件放入项目文件夹中,并尝试直接在plugin.sbt和Build.scala中添加java选项
System.setProperty("-Dsbt.override.build.repos", "true"),
System.setProperty("-Dsbt.repository.config", "project/repositories"),
但它仍然不起作用。我很好奇 SBT 何时获取解析器的 java 选项,因为显然它是在 plugin.sbt 和 Build.scala 之前。
任何想法?
Thanks.
DB Tsai