2011-03-15 64 views
6

我想手動將lucene jar文件添加到我的本地ivy存儲庫。 我現有的其他apache jar文件夾下.ivy2 \ cache \ apache.org \我創建了一個名爲lucene的文件夾,裏面有一個名爲jars的文件夾。然後我將名爲lucene-3.0.3.jar的jar放入jars文件夾中。 下一步我創建的文件夾的Lucene以下常春藤3.0.3.xml:無法將jar文件添加到.ivy緩存手動

<?xml version="1.0" encoding="UTF-8"?> 

<ivy-module version="1.0"> 
    <info organisation="apache.org" module="lucene" revision="3.0.3" status="release" publication="20090416105712"> 
    </info> 
    <publications> 
     <artifact name="lucene-3.0.3" type="jar" ext="jar"/> 
    </publications> 
</ivy-module> 

然後我嘗試從這樣的一個項目中引用它:

<dependency org="apache.org" name="lucene" rev="3.0.3"/> 

,但我得到一個錯誤:「無法解析的依賴項:apache.org#lucene; 3.0.3:找不到」

我能從我的.ivy2緩存文件夾中找到其他依賴關係,只是我手動創建的這個問題給出了問題。

我錯過了什麼?

回答

2

我同意Mark的觀點,您應該將文件放入本地存儲庫而不是緩存。特別是因爲預期緩存可能(並且經常)隨時被刪除。

但是,要解決您的問題,最可能的原因是您的文件夾層次結構與預期模式不匹配。默認情況下,緩存佈局如下:

[organisation]/[module]/[revision]/[type]s/[artifact].[ext] 

所以你有你的文件移動到以下目錄,以消除錯誤:

.ivy2\cache\apache.org\lucene\3.0.3\jars\lucene.jar 

有時候,缺省的格局得到改變基於設置文件,所以確定預期模式的唯一方法是查看緩存中的其他jar(例如,現在,我的緩存在文件名的末尾有[revision]部分,否則全部其他是一樣的)。

但是,我同意馬克,不過,你真的不想手動添加東西到緩存。相反,將它們添加到默認的本地存儲庫或更好,create your own basic repository.

+0

謝謝。我可能應該提到我這樣做是爲了自我介紹常春藤是如何工作和僅用於實驗的。我知道,常青藤從基於其解析器的倉庫中取出罐子,但認爲我會嘗試和模仿它在做什麼:)謝謝 – Joly 2011-03-17 10:00:19

+0

很高興我能以某種方式幫助理解這種理解。順便提一句,我想提一下,常春藤是我見過的最好的文檔工具之一。在我上面鏈接的那個網站上釣魚,你會發現常春藤的每一個功能以及每個命令的非常有用的例子。我知道常春藤向後和向前以及我知道的一切,我從那個網站了解到。 – gMale 2011-03-17 15:58:33

1

常春藤緩存不是一個存儲庫,它是一個緩存(與Maven不同)。緩存包含記錄常春藤以前下載的元數據文件。

我建議您將緩存一起文件到常春藤的本地倉庫的位置,其存儲(默認):

$HOME/.ivy2/local 

所以,在你的榜樣罐子需要被存儲在這裏:

$HOME/.ivy2/local/org.apache/lucene/3.0.3/jars/lucene.jar