我正在尝试手动将lucene jar文件添加到我的本地ivy存储库。 我有其他apache jar所以在现有的文件夹下.ivy2 \ cache \ apache.org \我创建了一个名为lucene的文件夹,里面有一个名为jars的文件夹。然后我将名为lucene-3.0.3.jar的jar放在jars文件夹中。 下一步我在lucene文件夹中创建了以下ivy-3.0.3.xml:
<?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缓存文件夹中找到其他依赖项,只是我手动创建的这个依赖项存在问题。
我错过了什么?
答案 0 :(得分:2)
我同意Mark,您应该将文件放在本地存储库而不是缓存中。特别是因为期望在任何时候都可以(并且经常)删除缓存。
但是,要解决您的问题,您错误的最可能原因是您的文件夹层次结构与预期的模式不匹配。默认情况下,缓存的布局如下:
[organisation]/[module]/[revision]/[type]s/[artifact].[ext]
因此,您必须将文件移至以下目录以消除该错误:
.ivy2\cache\apache.org\lucene\3.0.3\jars\lucene.jar
有时,默认模式会根据设置文件进行更改,因此确定预期模式的唯一方法是查看缓存中的其他jar(例如,现在,我的缓存中包含[revision]部分文件名的末尾,否则,其他一切都是相同的。)
但是,我同意Mark的意见,你真的不想手动将内容添加到缓存中。相反,将它们添加到默认本地存储库或更好,create your own basic repository.
答案 1 :(得分:1)
常春藤缓存不是存储库,它是缓存(与Maven不同)。缓存包含记录常春藤以前下载的元数据文件。
我建议您将文件放入ivy的本地存储库位置,该位置存储(默认情况下)缓存:
$HOME/.ivy2/local
所以在你的例子中,jar需要存储在这里:
$HOME/.ivy2/local/org.apache/lucene/3.0.3/jars/lucene.jar