簡體   English   中英

如何在SBT中覆蓋單個Ivy設置?

[英]How do you override a single Ivy setting in SBT?

我正在努力解決SBT中的一些常春藤問題,並且正在尋找一種方法來覆蓋一個單一的常春藤設置,但將其他所有內容保持原樣。 具體來說,我想更改httpRequestMethod值。

我找到的最接近的解決方案是將externalIvySettings()添加到build.sbt,然后創建一個僅包含其中一個設置的ivysettings.xml文件,但是當我這樣做時,它顯然會刪除其他設置,因為我可以不再下載任何內容。

那么,有誰知道如何重寫httpRequestMethod屬性而不更改任何其他內容?

提前致謝!

警告:實驗性

不知道這是否行得通,但是sbt確實通過ivySbt密鑰公開了其內部Ivy實例。 因此,您可以執行以下操作:

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
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM