温馨提示:本文翻译自stackoverflow.com,查看原文请点击:scala - (SBT) How to disable default resolver and only use the company internal resolver?
sbt scala nexus artifactory

scala - (SBT)如何禁用默认解析器,仅使用公司内部解析器?

发布于 2020-03-27 11:34:52

我们想使用公司内部的ivy / maven存储库(人工工厂)来提高解析和下载jar文件的速度,并且我们也想用它在组织中不同团队之间交换二进制jar文件。

我知道我们可以通过设置强制SBT去通过代理~/.repositories

[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之前。

任何想法?

谢谢。

蔡德培

查看更多

查看更多

提问者
DB Tsai
被浏览
151
0__ 2013-10-27 00:17

如果您将sbt-extras shell脚本替换为默认启动器脚本,则可以通过设置~/.repositories和添加轻松地对其进行修改-Dsbt.override.build.repos=true然后,您要做的就是确保开发人员使用该脚本。