如何在本地存储库之后但在默认存储库之前添加Nexus解析程序?

时间:2015-06-25 13:27:14

标签: sbt

我们有一个内部Nexus存储库,我们用它来发布工件并缓存外部依赖项(来自Maven Central,Typesafe等)。

我想在我的SBT构建中将存储库添加为解析器,具有以下限制:

  1. 设置需要是构建声明的一部分(.sbt或.scala,但不是"全局" sbt设置
  2. 如果本地存储库中存在依赖关系,则应从那里获取。我不想访问网络以获得每个构建的所有依赖项。
  3. 如果依赖项不在本地存在,sbt应首先尝试从Nexus存储库获取它,然后再尝试使用外部存储库。
  4. 我在这里看到了几个类似的问题,但没有找到任何解决方案。具体来说,我目前的代码是:

    externalResolvers ~= { rs => nexusResolver +: rs }
    

    但当我show externalResolvers时,Nexus repo在之前出现

1 个答案:

答案 0 :(得分:0)

到目前为止,我已经提出了以下解决方案:

externalResolvers ~= { rs =>
  val grouped = rs.groupBy(_.isInstanceOf[FileRepository])
  val fileRepos = grouped(true)
  val remoteRepos = grouped(false)
  fileRepos ++ (nexusResolver +: remoteRepos)
}

它有效,但有点脏......如果有人有“更清洁”的解决方案,我很乐意听到它。