我们希望使用公司内部的 ivy/maven 存储库(artifactory)来提高解析和下载 jar 文件的速度,并且我们希望使用它在我们组织中的不同团队之间交换二进制 jar 文件。
~/.repositories
我知道我们可以通过设置来强制 SBT 通过代理
[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/
然后使用-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 下载 jars。
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 之前。
任何想法?
谢谢。
德宝蔡