【问题标题】:How do I force SBT plugins and plugins to be downloaded through Nexus?如何强制通过 Nexus 下载 SBT 插件和插件?
【发布时间】:2012-04-10 18:03:13
【问题描述】:

我想现在我想出了如何强制通过 Nexus 下载项目依赖项。 (我通过将externalResolvers 明确设置为只有一个值的Seq 来做到这一点:

override lazy val settings = super.settings ++ Seq(
  externalResolvers := Seq("Nexus repository" at "http://.../nexus/content/groups/public/")
)

但是,如果我删除了 Ivy 缓存,SBT 仍会访问许多公共存储库以获取插件。理想情况下,我也希望通过 Nexus 来确保我们不会依赖这些存储库永远存在。 (他们没有。)

有什么线索吗? (我在 SBT 0.11.2)

【问题讨论】:

  • 我认为它应该以同样的方式工作。只需在 plugins.sbt 中将解析器设置为 Seq。
  • 我应该说我已经尝试过了,但是没有用。
  • 启动器使用的存储库可能是相关的。您是否尝试过this answer 中的解决方案?
  • 我还没有尝试过,但我不想为我的整个系统全局更改它。我有很多项目应该通过 Nexus 存储库。我只想让一个项目始终通过这个 Nexus 存储库。
  • 您可以在项目中包含一个 sbt 脚本、jar 和属性文件。

标签: scala sbt


【解决方案1】:

sbt 0.12 为此添加了Global repository setting

通过在~/.sbt/repositories 中放置一个独立的[repositories] 部分(参见Launcher Specification 页面)来定义要使用的存储库,并将-Dsbt.override.build.repos=true 传递给sbt。只有该文件中的存储库将被启动器用于检索 sbt 和 Scala,以及在检索项目依赖项时被 sbt 使用。

【讨论】:

    猜你喜欢
    • 2016-03-30
    • 2017-06-18
    • 2014-11-14
    • 2014-03-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2020-06-25
    • 2012-05-22
    相关资源
    最近更新 更多