【问题标题】:How do I add a Nexus resolver after local repository, but before the default repositories?如何在本地存储库之后、默认存储库之前添加 Nexus 解析器?
【发布时间】:2015-09-12 03:23:46
【问题描述】:

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

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

  1. 设置需要是构建声明的一部分(.sbt 或 .scala,但不在“全局”sbt 设置中
  2. 如果本地存储库中存在依赖项,则应从那里获取。我不想访问网络来获取每个构建的所有依赖项。
  3. 如果本地不存在依赖项,sbt 应先尝试从 Nexus 存储库获取它,然后再尝试外部存储库。

我在这里看到了几个类似的问题,但没有找到任何可以做到这一点的解决方案。具体来说,我目前拥有的代码是:

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

但是当我 show externalResolvers 时,Nexus 存储库出现在 本地存储库之前。

【问题讨论】:

    标签: sbt


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多