scala - 在sbt中,手動檢索作為本地非托管庫的Ivy依賴項

  显示原文与译文双语对照的内容
52 1

我在 java/Ant 中有一個 Pattern,用於在任務中獲取依賴項並將它的放入項目的本地 lib/文件夾中。 我不想有一個本地 Maven,我只希望開發人員在更改( 我在庫中提交了庫,在它們被提取之後) 時運行依賴項更新器。

如何利用SBT依賴項設置手動將它們獲取到本地 lib/文件夾,並用作"非托管"依賴項( 與lib_managed相對應)? 我不想強迫開發者設置他的ivy.home 或者建立一個啟動器配置。 我寧願只有一個可以調用的任務,它可以獲取在生成中指定的庫。 任何這樣做的例子?

时间: 原作者:

120 4

管理不能在一般情況下轉換為非托管。 有些特殊情況下,某些 jars 可以用等價的結果行為放入 lib/ 中,但一般情況下。 問題示例:

  1. 插件可以在自定義配置中下載 jars,而非托管的插件不會覆蓋這些
  2. 每個類路徑/配置都需要一個包含所有 jars的單獨目錄
  3. 非托管依賴項丟失關聯的元數據,doc 將自動將它的鏈接到外部站點,例如

這是 Java ( Maven/ivy ) 現有依賴管理解決方案的一般問題。 可以對鎖定。離線解析度的概念進行近似,但不會特別乾淨。容易或者靈活。 ( 我知道ivy的retrieve ) 在sbt中,可能需要使用 lib_managed/skip in update := trueoffline := true,並保持 update 緩存圍繞( 在 target/ 中),但這沒有被記錄或者測試。

( 對於較長的方向,很熟悉地將依賴性和離線用法鎖定為核心目標) 。

...