我不熟悉常春藤。我认为这是从存储库中自动下载jar的一些实用工具,如maven。
我已经下载了一个项目(使用svn checkout http://red5.googlecode.com/svn/java/server/trunk/
命令的red5),该项目配置了Ivy。问题不是关于red5,而是关于Ivy。
在我使用Eclipse的SVN插件下载了这个项目后,我选择了右键并执行Ivy-Resolve
命令(使用IvyDE eclipse插件)。之后我发现很多jar出现在package explorer中的ivy.xml[*]
节点下。
我猜这些库是常春藤下载的。
但是结果源代码有一个错误,表明一个jar是旧版本。这是jaudiotagger-1.0.8.jar
。它的包org.jaudiotagger.tag
不包含源所需的FieldKey
类。
接下来我查看'ivy.xml`并查看
<dependency name="jaudiotagger" rev="2.0.4-SNAPSHOT" />
这不意味着配置需要2.0.4版本的jar。那么为什么Ivy下载了1.0.8版本呢?
如何检查存储库是否包含所需文件? Maven中央存储库包含版本2.0.3,它不是2.0.4,但是比1.0.8更新。 Ivy应该浏览一下吗?
编辑1
我发现2.0.4版本的pom文件在这里:http://download.java.net/maven/2/org/jaudiotagger/2.0.4-SNAPSHOT/jaudiotagger-2.0.4-SNAPSHOT.pom
我想我可以从同一目录中获取jar本身。
但我可以将这个地方配置为Ivy的存储库吗?这个地方是不是Maven兼容的存储库?
答案 0 :(得分:1)
项目的根文件夹中有一个ivysettings.xml文件。它包含构建脚本使用的所有存储库。
您可以轻松地将java.net添加为额外的存储库,如下所示:
<ibiblio name="java.net" m2compatible="true" root="http://download.java.net/maven/2/"/>
我尝试重现您的错误,但对于我来说,在Google代码回购中找到了2.0.4快照:
trying http://red5.googlecode.com/svn/repository/jaudiotagger-2.0.4-SNAPSHOT.jar
tried http://red5.googlecode.com/svn/repository/jaudiotagger-2.0.4-SNAPSHOT.jar
googlecode: no ivy file found for red5#jaudiotagger;2.0.4-SNAPSHOT: using default data
checking red5#jaudiotagger;2.0.4-SNAPSHOT[default] from googlecode against [none]
module revision kept as first found: red5#jaudiotagger;2.0.4-SNAPSHOT[default] from googlecode
found red5#jaudiotagger;2.0.4-SNAPSHOT in googlecode