【问题标题】:How do you override a single Ivy setting in SBT?如何覆盖 SBT 中的单个 Ivy 设置?
【发布时间】:2014-06-10 06:12:45
【问题描述】:

我正在努力解决 SBT 中的一些 Ivy 问题,我正在寻找一种方法来覆盖一个 Ivy 设置,但让其他所有内容保持原样。具体来说,我想更改 httpRequestMethod 值。

我找到的最接近的解决方案是将externalIvySettings() 添加到 build.sbt,然后创建一个 ivysettings.xml 文件,其中只有一个设置,但是当我这样做时,它显然会排除其他设置,因为我不能再下载任何东西了。

那么有谁知道如何覆盖httpRequestMethod 属性而不更改任何其他内容?

提前致谢!

【问题讨论】:

    标签: sbt ivy


    【解决方案1】:

    警告:实验性

    不确定这是否可行,但sbt 确实通过ivySbt 键公开了它的内部常春藤实例。所以你可能能够做到这一点:

    ivySbt := {
      import org.apache.ivy.Ivy
      import org.apache.ivy.util.url.{URLHandlerRegistry, URLHandler}
      val old = ivySbt.value
      val s = streams.value
      old.withIvy(s.log) { ivy: Ivy =>
        URLHandlerRegistry.getHttp().setRequestMethod(URLHandler.REQUEST_METHOD_GET)
        old
      }
    }
    

    【讨论】:

    • 不幸的是,这并没有奏效,但它至少给了我一些开始修补的东西:)。谢谢。
    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 2012-08-15
    • 2018-04-09
    • 2019-01-23
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多