2012-08-24 43 views
1

我有gradle這個建一個項目,發佈一個神器本地常春藤庫。從歷史上看,我們純粹用flatDir存儲庫來使用gradle,因爲我們希望將所有東西都保存在本地。但是,我開始看到使用常青藤複製各處生成的工件的好處。如何在gradle中發佈到常春藤庫時解決flatDir瞬態依賴關係?

我可以發佈神器輕鬆常春藤,但使用的存儲庫等項目在其短暫的flatDir依賴性不拉這件神器。

我試圖找出處理這些短暫的依賴關係的最佳途徑。很顯然,任何使用神器的人都需要他們,因爲他們擁有神器使用的類。我應該將我的神器的臨時依賴發佈到常春藤嗎?什麼是最好的方法來做到這一點?

我已經試過(我認爲黑客攻擊)與宣佈在flatLib目錄罐子的人工製品本身:

group 'utils' 

repositories { 
    flatDir { 
     dirs 'lib' 
     name 'librepo' 
    } 
} 

dependencies { 
    compile ":antlr:3.4" 
    // ... 
} 

artifacts { 
    project.repositories.librepo.dirs.each { dir -> 
     dir.eachFile { 
      if (it.isFile()) { 
       archives file(it) 
      } 
     } 
    } 
} 

但是,包括神器項目失敗,因爲flatDir文件上傳到相同的基團作爲主僞影(在這種情況下,「utils的」),但與在依賴關係部分沒有組定義,因此,在的ivy.xml中的條目不具有有機值,即

<dependency org="" name="antlr" rev="3.4" conf="compile->default"/> 

我想我錯過了一些東西,任何幫助將不勝感激關於如何混合flatDir和常春藤。

我應該遷移flatDir依賴常春藤,使他們正確解析,然後我可以改變我的體型只使用常春藤庫它發佈到作爲源呢?我真的不能想到一個更好的辦法,但如果我這樣做,它會在相當多的影響,每個依賴將不得不搬出主項目目錄的lib目錄中,常春藤,我只是真的想使用常青藤資源庫來管理我們生成的工件,而不是第三方庫。

回答

1

爲了完整起見,我無法找到一個體面的解決方案,並最終在this article的幫助下將所有lib/jar文件移動到常春藤。不過,這個問題最終給我贏得了風滾草獎!

相關問題