2013-10-02 39 views
1

我有一個在Java/Ant中的模式,我使用Ivy在任務中獲取我的依賴關係,並將它們放在項目的本地lib /文件夾中。我不希望有一個本地Maven,我只希望開發人員在他們改變某些東西時運行依賴關係更新(我在提取lib之後提交libs)。手動檢索常春藤依賴作爲本地非託管庫在sbt

如何利用SBT依賴關係設置手動將它們提取到本地庫文件夾並用作「非託管」依賴項(而不是lib_managed)?我真的不想強迫開發人員設置他的ivy.home或構建啓動器配置。我寧願只是有一個可調用的任務,將這些庫提取到我在build.sbt/scala中指定的位置。這樣做的任何例子?

回答

0

我不使用sbt,但和ANT合作的方法是創建一個啓動目標,設置開發人員的機器,以便常春藤可用於管理依賴關係。看看下面的例子:

+0

這是一個模式我已經有了,我想直接使用SBT瓦特/出一個build.xml分離 –

0

管理不能在一般被翻譯成非託管。有些特殊情況下,可以將一些罐子放入lib/,併產生相應的結果,但通常不會。的問題的示例:

  1. 插件可以請求罐子在定製配置被下載和非託管不會涵蓋那些
  2. 每個類路徑/配置需要包含所有罐子
  3. 非託管依賴性喪失相關的元數據的單獨目錄,doc用於自動鏈接到外部網站,例如

這是Java(Maven/Ivy)現有依賴管理解決方案的一個普遍問題。可以近似鎖定,脫機解析的想法,但不是特別乾淨,輕鬆或靈活。 (我知道Ivy的retrieve)。在sbt中,它可能需要使用lib_managed/,skip in update := true,,並且保留update高速緩存(在target/中),但這沒有記錄或測試。

(對於一個長期方向,Adept有鎖定下來的依賴性和離線使用的核心目標。)